C# 如何序列化CustomLineCap类的实例

C# 如何序列化CustomLineCap类的实例,c#,.net,vb.net,serializable,binaryformatter,C#,.net,Vb.net,Serializable,Binaryformatter,CustomLineCap未应用SerializableAttribute 我想将此类型的属性添加到当前正在使用BinaryFormatter进行序列化/反序列化的对象图中 我尝试切换到XML序列化,但它有一大堆额外的要求,我不想愚弄这一点,特别是,因为它不是我的代码;这是我下载的一些开源软件 如果有一种方法可以让BinaryFormatter忽略该属性,那么这可能会起作用 我宁愿把它分类;我只是不知道这是否可行。您将无法直接序列化的实例。它源于,虽然这不是不能序列化的指标,但几乎总是这样 原因

CustomLineCap未应用
SerializableAttribute

我想将此类型的属性添加到当前正在使用
BinaryFormatter
进行序列化/反序列化的对象图中

我尝试切换到XML序列化,但它有一大堆额外的要求,我不想愚弄这一点,特别是,因为它不是我的代码;这是我下载的一些开源软件

如果有一种方法可以让BinaryFormatter忽略该属性,那么这可能会起作用


我宁愿把它分类;我只是不知道这是否可行。

您将无法直接序列化的实例。它源于,虽然这不是不能序列化的指标,但几乎总是这样

原因是
MarshalByRefObject
类通常是一个指示器,表明从它派生的对象在实例所在的应用程序域中只有上下文。在本例中,您可以看到
CustomLineCap
实例是一个仅在其所在的进程中具有任何意义的实例(它显式地绑定到句柄)

也就是说,我建议使用创建一个包装器,该包装器捕获要序列化的
CustomLineCap
实例的属性,然后公开并序列化该实例

这通常是您希望对任何具有绑定到特定域的上下文的类采取的方法,当序列化为在该域之外持久化时,这些上下文就不再有意义了


请注意,子类化在这种情况下也不起作用,因为将应用于子类意味着所有字段(即使是您无权访问的私有字段)都将被序列化,包括仅在创建它们的应用程序域中具有上下文的任何句柄。

您指的是CustomLineCap吗?我似乎找不到名为CustomEndCap的实际类。