相关疑难解决方法(0)

ExpandoObject的真正好处是什么?

添加到.NET 4 的ExpandoObject类允许您在运行时任意设置对象的属性.

使用a Dictionary<string, object>或者甚至是Hashtable有什么优势吗?据我所知,这只是一个哈希表,您可以使用稍微简洁的语法访问.

例如,为什么这样:

dynamic obj = new ExpandoObject();
obj.MyInt = 3;
obj.MyString = "Foo";
Console.WriteLine(obj.MyString);
Run Code Online (Sandbox Code Playgroud)

真的比以下更好,或者大不相同:

var obj = new Dictionary<string, object>();
obj["MyInt"] = 3;
obj["MyString"] = "Foo";

Console.WriteLine(obj["MyString"]);
Run Code Online (Sandbox Code Playgroud)

使用ExpandoObject而不是仅仅使用任意字典类型可以获得什么真正的优势,除了不明显你正在使用将在运行时确定的类型.

.net c# .net-4.0 c#-4.0

573
推荐指数
7
解决办法
12万
查看次数

如何以编程方式将属性插入.cs源文件中的类?

我正在创建一个自动化工具,用于将属性插入到现有类的源代码中.例如,我有一个像这样的现有源代码:

public class MyClass 
{
   //class members goes here

}
Run Code Online (Sandbox Code Playgroud)

我想修改它变成这样

public class MyClass 
{
   //class members goes here

   public string MyProp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

并将其保存到同一个文件中.

类名,属性类型和属性名称将事先知道,并且可以被视为操作的参数.知道如何轻松做到这一点吗?也许正则表达式替换将适用于此,但我不知道使用哪个表达式将是灵活的,无论源代码的新行,空格和标识策略.

编辑:我正在寻找的只是自动生成源代码,而不是在运行时操作类

.net c# regex string code-generation

5
推荐指数
2
解决办法
1861
查看次数

标签 统计

.net ×2

c# ×2

.net-4.0 ×1

c#-4.0 ×1

code-generation ×1

regex ×1

string ×1