Tag: 动态

以原生速度运行动态编译的C#代码……怎么样?

我已经阅读了几篇关于编写和编译动态C#代码的post。 例如, 这篇文章 。 我知道它可以通过几种方式完成。 但是,调用代码调用程序很慢。 我做了一个简单的基准测试,它比调用本机方法慢了约500倍。 我想要做的是相当于加载DLL并直接调用其中一个方法(“本机”),这将提供我想要的速度优势。 最简单的方法是什么? 将动态代码编译为dll然后加载它? 可以在记忆中完成吗? 编辑 我不关心编译时间。 只执行。 编辑2,3 这是我写的基准代码: public static int Execute(int i) { return i * 2; } private void button30_Click(object sender, EventArgs e) { CSharpCodeProvider foo = new CSharpCodeProvider(); var res = foo.CompileAssemblyFromSource( new System.CodeDom.Compiler.CompilerParameters() { GenerateInMemory = true, CompilerOptions = @”/optimize”, }, @”public class […]

访问Sender控件 – C#

如何访问发件人控件(即:更改位置等)? 我在面板的运行时创建了一些图片框,将其click事件设置为一个函数。 我想获取用户点击的图片框的位置。 我也尝试过this.activecontrol但它没有工作,并给出了窗体中放置的控件的位置。 我使用以下代码: void AddPoint(int GraphX, int GraphY,int PointNumber) { string PointNameVar = “A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z”; string [] PointNameArr = PointNameVar.Split(‘,’); PictureBox pb_point = new PictureBox(); pb_point.Name = “Point”+PointNameArr[PointNumber]; pb_point.Width = 5; pb_point.Height = 5; pb_point.BorderStyle = BorderStyle.FixedSingle; pb_point.BackColor = Color.DarkBlue; pb_point.Left = GraphX; //X pb_point.Top = GraphY; //Y pb_point.MouseDown += new MouseEventHandler(pb_point_MouseDown); pb_point.MouseUp += […]

将dynamic传递给方法时,结果是动态表达式,即使它不是

在C#5中,当我尝试将动态作为方法参数传递时,由于某种原因,结果变为动态。 class Program { static void Main(string[] args) { dynamic value = “John”; Find(value).ToList(); } public static IEnumerable Find(object value) { //SOME LOGIC yield return default(T); //REAL RESULT } } Find(value)必须返回IEnumerable 。 为什么编译器认为它是动态的? 我知道Find(val as object).ToList(); 解决这个问题,但我想了解为什么会发生这种情况。

在C#中使用动态SQL的变量表名

我一直在寻找一种输入变量表名的方法,看起来最好的方法是使用动态sql,虽然它可以导致SQL注入。 谁能certificate这是如何在C#中完成的? 例如,我想要实现这样的东西: SqlCommand command= new SqlCommand(“SELECT x FROM @table WHERE @column = @y”, conn); 从中可以看出,表名和列名将是变量。 我之前使用的是字符串连接,但为了安全起见,我想避免这种情况。 不确定它是否重要,但表和列不是由用户输入决定的,而是由用户选择的链接确定,所以也许SQL注入不是问题吗?

动态创建控件

我想知道c#winform中是否可行。 按下按钮时创建控件并将其放在给定位置。 我认为这是可能的 private TextBox txtBox = new TextBox(); private Button btnAdd = new Button(); private ListBox lstBox = new ListBox(); private CheckBox chkBox = new CheckBox(); private Label lblCount = new Label(); 但问题在于按下按钮时会创建相同的名称控件。如何避免这种情况 什么da ……..我写了,并没有exception我期待它因为控件已经包含btnAdd而不是很多按钮创建你想要的许多。 访问它们将是问题,但它将通过@drachenstern方法正确解决? private void button1_Click_1(object sender, EventArgs e) { Button btnAdd = new Button(); btnAdd.BackColor = Color.Gray; btnAdd.Text = “Add”; […]

从asp.net中动态创建的文本框中获取文本

我整个上午一直在反对这个,所以希望我能得到一些帮助。 基本上我有问题从一些文本框控件获取值我在.net 4中动态创建。 这是应用程序的理想流程。 1)。 用户从下拉菜单中选择一个html文档,该菜单是一个字母的模板。 这个html文档包含格式$ VARIABLENAME $的标签,将用正确的值替换。 2)。 该程序通过模板运行并拉出$ STRING $格式的所有字符串并将它们存储在列表中。 3)。 对于此列表中的每个条目,程序生成一个asp:标签和一个asp:textbox,其中包含基于原始$ VARIABLENAME $字段的唯一ID。 4)。 用户输入替换值,然后点击提交。 5)。 程序用替换值替换所有$ STRING $并输出结果。 一切正常,直到我需要从文本框中获取值。 我很确定它是页面生命周期的一个问题,但是因为在使用从下拉列表中选择所需的模板之前不会生成文本框,所以我不确定如何通过回发使它们持久化以便我可以引用它们。 我错了吗? 在发生回拨事件后,如何访问从下拉事件创建的文本字段? 编辑:这是相关代码的大部分内容。 protected void createTextBoxes(List results) { if (results != null) { foreach (string result in results) { string formattedResult = result.Substring(1, result.Length – 2); formattedResult = formattedResult.ToLower(); formattedResult […]

Web API – 动态到XML序列化

我正在编写一个Web API Web服务,它返回动态构造的属性包。 是否有任何有效的序列化程序或如何将动态序列化为XML? 我试图寻找任何好的建议,但没有找到任何可用的东西。

将Func转换为委托

我定义了以下委托: public delegate object MyDelegate(dynamic target); 我有一个Func对象: Func myFunc 如何将myFunc转换为MyDelegate ? 我试过这些说明,但都没有奏效: MyDelegate myDeleg = myFunc; MyDelegate myDeleg = (MyDelegate) myFunc; MyDelegate myDeleg = myFunc as MyDelegate;

通过C#.NET在Word中创建动态表

我有一个C#应用程序,我想为程序实现一个逻辑,它将打开word文档并转到页面中的某个位置并创建一个表并将值放入其中。 任何人都可以告诉我如何实现这一点。 我正在使用Visual Studio 2005

将显式接口实现与动态对象一起使用

我正在试验接口的显式实现。 这是用当前上下文中无效的方法去除intellisense。 使用/ practical-applications-of-adaptive-application-of-fluent-builder-context /作为参考。 为了certificate它们不可调用,我想我可以使用dynamic关键字,因为至少我的代码会编译。 它确实编译,但它没有按预期工作。 动态变量可以访问类方法,但不能访问显式实现的接口方法。 public interface IAmInterface { void Explicit(); void Implicit(); } public class Implementation : IAmInterface { void IAmInterface.Explicit() { } public void Implicit() { } public static Implementation BeginBuild() { return new Implementation(); } } 以下是3个测试来certificate我的观点 [Test] public void TestWorksAsExpected() //Pass { var o = Implementation.BeginBuild(); o.Implicit(); } […]