Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 生成XML序列化程序集_C#_.net_Xml_Serialization - Fatal编程技术网

C# 生成XML序列化程序集

C# 生成XML序列化程序集,c#,.net,xml,serialization,C#,.net,Xml,Serialization,我有一些代码使用XMLSerializer在POCO对象和XML之间来回序列化/反序列化。我的对象用通常的XMLRoot、XMLElement等属性修饰 我正在寻找加速该过程的方法,在这个过程中,.NET生成了一个具有用于序列化的类型的临时程序集,您可以预先生成它。我用ANTS来观察动态生成需要多长时间,需要2-3秒,所以这绝对是一种加速过程的方法 我使用的XML不是我生成的XML。另一个过程可以做到这一点,我不能改变这个过程。XML格式不正确。没有名称空间,根名称在对应不同POCO对象的不同X

我有一些代码使用XMLSerializer在POCO对象和XML之间来回序列化/反序列化。我的对象用通常的XMLRoot、XMLElement等属性修饰

我正在寻找加速该过程的方法,在这个过程中,.NET生成了一个具有用于序列化的类型的临时程序集,您可以预先生成它。我用ANTS来观察动态生成需要多长时间,需要2-3秒,所以这绝对是一种加速过程的方法

我使用的XML不是我生成的XML。另一个过程可以做到这一点,我不能改变这个过程。XML格式不正确。没有名称空间,根名称在对应不同POCO对象的不同XML片段之间重复。因此,这两个对象都必须使用XmlRootXMLObj1属性进行修饰


我发现了如何生成序列化程序集,但当我运行sgen工具时,它抱怨我正在生成两个具有相同根名称的对象。它希望我将名称空间放在XmlRoot属性中,我可以这样做,它解决了问题,但是我得到的XML中没有名称空间,所以我认为这不会序列化。显然,.NET运行时可以按原样生成序列化程序集,否则可能会出现运行时异常。那么,有人对如何处理这个问题有什么建议吗?如何以与.net framework相同的方式生成序列化程序集?

我想您可以使用/type:type参数运行sgen.exe,但只能对其中一种类型执行此操作,不能同时对两种类型执行此操作。如果将这两种类型放在不同的程序集中会怎么样?另一个选项可能是使用XmlRootXMLObj1创建一种类型,该类型具有当前两种类型的所有属性;可以这么说,合并它们。您将拥有一个可以处理这两种文件的类。多个程序集的思想非常简单。我从来没有想过。你如何让运行时知道这些程序集?你不知道。运行库使用命名约定查找它们。