我使用sgen
针对包含大量类型的程序集进行运行。我想要排除其中的两个类型进行序列化,但似乎找不到方法。
我发现sgen
有一个/type
开关用于指定特定类型,但没有排除特定类型的选项。
是否有一种方法可以从序列化中排除特定类型?
我使用sgen
针对包含大量类型的程序集进行运行。我想要排除其中的两个类型进行序列化,但似乎找不到方法。
我发现sgen
有一个/type
开关用于指定特定类型,但没有排除特定类型的选项。
是否有一种方法可以从序列化中排除特定类型?
除了将你想要排除的类型放在另一个程序集中,你不能从序列化器生成中排除类型。
更新
其他帖子提出了一些额外的可能性来排除特定类型,根据你的用例可行性不同。
internal
,然后sgen.exe应该会跳过该类。internal class NotToBeSerialized
{
...
}
不确定您是否正在寻找此内容,但您可以在类定义之前提到 [NonSerialized] 来排除自己的类序列化。 因此,如果要排除特定类型,您将需要继承它并创建自己的类。
[NonSerialized]
public class Point
{
public int x, y;
}
NonSerialized
属性的唯一目标是字段。 - tm1
sgen
只生成序列化程序集。在其中再加入另外两个类会有什么问题吗? - Hanan M<SGenUseProxyTypes>false</SGenUseProxyTypes>
标签。我删除了这些标签,同时保留<GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
,错误消失了。 - Louis Somers