Tag: 动态

有没有简单的方法来创建方法并在C#中动态设置它的主体?

我在字符串中持有方法体。 我想动态创建方法。 但我不知道,如何设置它的身体。 我看到使用CodeDom非常乏味。 我看到使用Emit和OpCodes。 有没有办法从字符串变量中使用现成的代码? string method_body = “return \”Hello, world!\”;”; //there is method body DynamicMethod dm = new System.Reflection.Emit.DynamicMethod(“My_method”, typeof(string), new Type[] { }); //any way to create method dynamically //any way to set body string result = (string)dm.Invoke(…); //I need write result in variable

使用在运行时确定的类型参数调用generics函数

我有一个问题涉及使用在运行时已知的类型参数调用类的generics方法。 具体来说,代码如下所示: FieldInfo[] dataFields = this.GetType().GetFields( BindingFlags.Public | BindingFlags.Instance ); // data is just a byte array used internally in DataStream DataStream ds = new DataStream( data ); foreach ( FieldInfo field in dataFields ) { Type fieldType = field.FieldType; // I want to call this method and pass in the type parameter specified by […]

使用动态文件名读取存储在资源文件(resx)中的字符串

在我的C#应用​​程序中,我需要创建一个为每个客户定制的字符串.resx文件。 我想要做的是每次必须向我的客户提供我的应用程序时都要避免重新编译整个项目,所以我需要动态访问这个字符串。 那么,如果我只在执行时间记录文件名,我如何访问(在应用程序执行期间)resx文件? 从现在起我写了类似的东西: Properties.Resources.MyString1 其中Resource是我的Resource.resx文件。 但是我需要这样的东西: GetStringFromDynamicResourceFile(“MyFile.resx”, “MyString1”); 可能吗? 谢谢马克

转换为IEnumerable ?

我写了这个扩展方法: public static class A { public static IEnumerable AsDynamic(this IEnumerable f) { foreach (var element in f) { yield return (dynamic) element; } } } 并测试了它: List l = new List(){1,2,3}; Console.WriteLine ( l.AsDynamic().GetType()); 但是输出是: typeof (IEnumerable) 为什么它不是typeof (IEnumerable) ? 我怎么能让它像它一样?

将动态类型转换为字典C#

我有一个看起来像这样的动态对象, { “2” : “foo”, “5” : “bar”, “8” : “foobar” } 如何将其转换为dictionary ?

比较C#中的动态对象

比较两个任意动态对象是否相同的最佳方法是什么? 例如这两个对象。 即 dynamic obj1 = new ExpandoObject(); obj1.Name = “Marcus”; obj1.Age = 39; obj1.LengthInMeters = 1.96; dynamic obj2 = AMethodReturningADynamic(); obj2.Name = “Marcus”; obj2.Age = 39; obj2.LengthInMeters = 1.96; Assert.AreEqual(obj1, obj2); // ? 或者有没有办法将实际属性及其值作为列表? 例如,从动态类型创建ExpandoObject?

动态函数列表并动态调用它们

我希望能够在List中存储各种静态方法,然后查找它们并动态调用它们。 每个静态方法都有不同数量的args,类型和返回值 static int X(int,int)…. static string Y(int,int,string) 我想要一个List,我可以将它们全部添加到: List list list.Add(X); list.Add(Y); 然后: dynamic result = list[0](1,2); dynamic result2 = list[1](5,10,”hello”) 如何在C#4中做到这一点?

在没有外部库的情况下在C#中播放动态创建的简单声音

我需要能够使用C#动态生成波形并播放它,无需任何外部库,也无需将声音文件存储在硬盘上。 延迟不是问题; 声音将在应用程序需要之前生成。 实际上,如果不是因为微软表示在64位版本的Windows中不支持它,Console.Beep()方法可能会满足我的需求。 如果我动态地生成自己的声音,我可以得到一个比简单的嘟嘟声更精彩的声音。 例如,我可以从三角波制作波形,其频率从2 KHz增加到4 KHz,同时衰减音量。 我不需要花哨的16位立体声,只需8位单声道即可。 我不需要动态控制音量和音高,只需在内存中生成一个声音文件并播放它而不存储它。 许多年前,我需要在Apple II,惠普工作站和我的旧Amiga计算机上生成声音。 从那时起就不需要这样做,而且我所描述的简单似乎变得更加复杂。 我很难相信这么简单的东西看起来很难。 我看到的大多数答案都是指NAudio或类似的库,这不是这个项目的选项(除了拉动整个库只是为了播放音调这一事实似乎是浪费)。

在Asp.Net MVC中使用JsTree延迟加载TreeView

我在我的项目中使用JsTree。 我想这样做: 我想在单击根节点(+)或子节点时显示子节点后第一次加载树时,只显示根节点。 我的意思是,当我点击每个节点时,我想从数据库中获取并添加到子节点。 我怎么能在Asp.Net MVC中做到这一点? 我查看了几乎每个JsTree Ajax示例。 但我做不到。 我该怎么回事呢? 我该怎么做我的行动请帮忙! JsTree: https ://www.jstree.com/ 样品: jsTree – 根据需要通过ajax加载子节点 jsTree:动态附加子节点 JSTree – 动态加载节点

创建运行时确定类型实例的最佳方法

在.NET 4中创建在运行时确定的类型实例的最佳方法是什么? 我有一个实例方法,虽然作用于BaseClass对象可能会被其派生类的实例调用。 我需要在方法中创建与this类型相同的另一个实例。 为每个派生类重载Method是不切实际的,因为它相当复杂,并且更有效地保持单个实现。 public class BaseClass { //constructors + properties + methods etc public SomeMethod() { //some code DerivedClass d = new DerivedClass(); //ideally determine the DerivedClass type at run-time } } 我已经阅读了一些关于reflection或使用动态关键字但我没有这些经验。