将内存中的POCO对象转换为c#代码以进行初始化

将内存中的POCO对象转换为c#代码以进行初始化,c#,serialization,automated-tests,poco,C#,Serialization,Automated Tests,Poco,是否有库或代码示例用于将内存中的POCO c#对象转换为创建该对象的.cs代码文件。例如: 内存中car类型的对象变为: Car c = new Car { Name = "mazda", Id = 5, Passengers = new List<string> { "Bob", "Sally" } // etc... recursing to the bottom }; carc=新车 { Name=“马自达”, Id=5, 乘客

是否有库或代码示例用于将内存中的POCO c#对象转换为创建该对象的.cs代码文件。例如: 内存中car类型的对象变为:

Car c = new Car 
{ 
     Name = "mazda", 
     Id = 5,
     Passengers = new List<string> { "Bob", "Sally" }
     // etc... recursing to the bottom
};
carc=新车
{ 
Name=“马自达”,
Id=5,
乘客=新名单{“鲍勃”、“萨利”}
//等…递归到底部
};

我可以假设它只能设置公共属性。

我们已经使用过,但对可读的.CS文件没有任何设置

您可以使用Visual Studio T4代码模板生成.cs文件。您可以在中查看有关代码生成工具的信息,并查看它是否符合您的要求


您需要设置一个部分代码模板,让库函数写出代码模板的其余部分,然后运行模板生成创建POCO对象的.cs类。不确定这是否是唯一的方法,但我可以看到它的工作

有一个VisualStudio扩展(OmarElabd/ObjectExporter),它在调试时生成C#初始值设定项代码。我个人需要在运行时从内存中的对象生成C#代码。这是从最初的问题演变而来的:


ObjectDumper.Dump(obj,DumpStyle.CSharp);从变量返回C#初始值设定项代码。您可能只想使用file.WriteAllText方法写入文件的输出字符串

您是否尝试过将反射与codedom类相结合?您应该能够非常轻松地生成只包含属性的类。我曾经尝试过使用反射,但它在泛型和索引对象方面有点麻烦。我想知道是否有人已经看过了。我从来没有看过codedom,我来看看。谢谢