Tag: 动态

有人可以向我解释汇编类的function吗?

我想在运行时加载和创建程序集,有人告诉我使用命名空间System.Reflection.Assembly和System.Reflection.Emit。 我在msdn上找到的只有参考资料,但是当你不知道在哪里以及如何开始时,它不适合使用它。 我已经谷歌搜索,但我没有找到任何有用的教程/样本/参考。 有人可以向我解释function或给我一些示例/教程吗?

使用SerializableDynamicObject进行动态排序

我需要根据运行时确定的标准对这些集合进行排序。 我使用本文中的代码来执行排序 – 最初我的代码使用了动态类。 然后我遇到了通过WCF进行序列化的问题,所以我切换到使用SerializableDynamicObject ,现在排序代码中断了: PropertyInfo pi = type.GetProperty(prop); 具有Seri​​alizableDynamicObject没有名为“Name”的属性的错误 – 其中“Name”是prop的值。 我想最简单的方法是找到一种序列化排序算法的动态类型的替代方法。 任何指向这个方向将不胜感激! 我看过这个例子,但是收到错误信息: The constructor with parameters (SerializationInfo, StreamingContext) is not found in ISerializable type

ASP.NET:动态生成HTML,如何?

去年我一直在做一些(开启和关闭)ASP.NET,但我从来没有遇到过这个挑战:我现在正在构建一个非常简单的网站,主要基于HTML和Javascript 。 但是,在一个页面上,我需要从服务器读取XML文件,解析它,从XML文件中包含的值创建HTML,并将其作为响应输出。 我将使用带有C#的ASP.NET。 我理解如何解析XML并在C#中生成HTML代码,但是如何将HTML代码写入响应/页面? 生成的动态HTML仅在页面中的一个大div中,页面的其余部分是静态的。 做这个的最好方式是什么? 因为我之前从未做过这样的事情,所以我猜测一种方法是清除页面的整个HTML源代码并使用Page_Load事件中的Response.Write()来编写整个HTML页面,已插入XML值。 这是正确的方法,如果是这样的话,你可以给我几行代码作为例子来确保我做得对吗? 谢谢! 另外,由于我以前从未有机会这样做,所以在服务器上的ASP.NET C#中读取文件的最佳方法是什么? 更新 :谢谢你的所有答案! 我找到了解决问题的方法,但提供的所有三个答案都是应对这一挑战的好方法。 正如你可以猜到的那样,给出接受的答案是一个艰难的选择,但是我会通过敬畏来回答这个问题 ,因为他显然付出了很多努力,这是一个非常优雅的解决方案,并且他回答了我的两个问题。 谢谢大家的精彩答案!

重建表达式

我有一个表达式: Expression<Func> myExpression = (myObj, theType) => { myObj.Prop > theType }; 我需要动态地将myExpression重建为Expression<Func>类型的新表达式,并将第一个表达式中的“theType”参数替换为具体值123,如: Expression<Func> myNewExpression = myObj => { myObj.Prop > 123 }; 我怎样才能做到这一点? 布里菲尔

获取动态创建的文本框的价值

我现在有点蠢,我创建了一些代码,创建了4个文本框,并在运行时将它们添加到表格布局中(下面的代码),但我正在努力从中获取文本,我尝试从中获取值,因为你将string s = TxtBox1.Text.ToString(); 但它只是得到一个空引用,然后我尝试了txt.Text.ToString(); 这只是从最后创建的文本框中获取文本。 private void button2_Click(object sender, EventArgs e) { int counter; for (counter = 1; counter <= 4; counter++) { // Output counter every fifth iteration if (counter % 1 == 0) { AddNewTextBox(); } } } public void AddNewTextBox() { txt = new TextBox(); tableLayoutPanel1.Controls.Add(txt); txt.Name = "TxtBox" + this.cLeft.ToString(); […]

如何在C#中动态创建连接字符串

如何在C#中动态创建连接字符串,而不是使用字符串连接创建它?

以编程方式在WPF中创建图像按钮

我想创建一个Windows工具栏(类似于RocketDock),它可以从序列化类中动态创建按钮,但我无法弄清楚如何动态设置图像。 另外,如何将图像序列化(我想用存储类序列化图像,而不是每次都从原始的png文件位置加载它)? 我找到了以下代码来创建依赖项属性 public class ImageButton { #region Image dependency property public static readonly DependencyProperty ImageProperty; public static ImageSource GetImage(DependencyObject obj) { return (ImageSource)obj.GetValue(ImageProperty); } public static void SetImage(DependencyObject obj, ImageSource value) { obj.SetValue(ImageProperty, value); } #endregion static ImageButton() { var metadata = new FrameworkPropertyMetadata((ImageSource)null); ImageProperty = DependencyProperty.RegisterAttached(“Image”, typeof(ImageSource), typeof(ImageButton), metadata); } } 我创建了一个按钮样式来inheritance以设置图像 但在创建按钮后,我无法弄清楚如何从代码中设置图像 […]

使用MEF在运行时加载插件

我的应用程序允许用户编写可在运行时实例化的插件(实现IPlugin)。 在启动时,解析插件.dll的目录,注册所有可用的插件信息。 在运行时,提供了一个GUI,允许用户创建任何插件的实例。 这很好用。 但现在我看到了MEF,并希望我能做同样的事情,但是以更优雅的方式代码化。 我到目前为止用MEF工作的东西 :在启动时我正在导入目录中的所有插件(导出IPlugin)并读出名称,类别,作者等信息……这些信息被编码为导出的元数据属性到插件类。 导入是懒惰的,因此所有插件都不会在启动时实例化,这很重要。 问题是,现在我没有看到在运行时优雅地实例化所选插件的方法,因为插件构造函数是一个导入构造函数,它正在导入对IPluginHost的引用(它需要立即进行一些初始化)的额外复杂性。 与plugininfo一起,我在启动期间将相应的Export保存在字典中,因此当GUI要求实例化给定特定plugininfo的插件时,我可以访问Export(其中Export.Value是我的实际IPlugin)。 但是从那里我如何创建插件的实例并将其与IPluginHost组合? 我收集我应该编写自己的ExportProvider,只要有人要求它就能为IPluginHost提供服务,但我无法访问程序集或特定插件的类型,这些插件可以让我将它添加到目录中,添加目录和ExportProvider到容器并在该容器上调用.ComposeParts。 我希望我能清楚地解决问题,如果没有,让我尝试一下这个问题的简短版本 :MEF的标准用例是不是一个程序,它在启动时延迟加载插件来解析可用的插件信息然后在运行时创建给定特定plugininfos的特定实例? 获得所涉及步骤的代码行是很好的。

使用动态类型从匿名对象获取值是不好的做法?

注意:我的问题不是关于ASP.Net。 我有一个使用LINQ与匿名集合绑定的GridView。 我想在网格中的事件处理程序中从绑定对象获取一个值,该值无法转换为任何静态类型,因为它的类型是匿名的。 为了解决这个问题,我使用动态类型来获取值 protected void MyGridView_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { dynamic dataItem = e.Row.DataItem; // getting the bound object bool isCurrentEntity = dataItem.IsCurrentEntity; if (isCurrentEntity) e.Row.Style.Add(HtmlTextWriterStyle.FontWeight, “Bold”); } } 我的问题是,使用动态类型这是一个不好的做法?

C#动态编译字符串和.cs文件

我正在一个网站上工作,用户可以在浏览器文本区域中为问题实现C#代码解决方案并提交。 然后,服务器将编译该代码以及我在服务器上提供的预定义接口。 将其视为战略设计模式; 我提供了一个策略界面,用户可以实现它。 所以我需要在运行时一起编译一个字符串和一个预定义的* .cs文件。 这是我现在只编译字符串部分的代码: CodeDomProvider codeProvider = CodeDomProvider.CreateProvider(“CSharp”); CompilerParameters parameters = new CompilerParameters(); parameters.OutputAssembly = “CodeOutputTest.dll”; // need to name this dynamically. where to store it? parameters.GenerateExecutable = false; parameters.IncludeDebugInformation = false; CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, request.Code); 用户会提交以下内容: public class UserClass : IStrategy { public string ExecuteSolution(string input) { // user code […]