在 C# 序列化中,我需要序列化引用其他 DLL 中的对象而没有源代码的对象

Posted

技术标签:

【中文标题】在 C# 序列化中,我需要序列化引用其他 DLL 中的对象而没有源代码的对象【英文标题】:In C# Serialization I need to Serialize Object that references object in other DLL without source code 【发布时间】:2011-04-08 21:16:15 【问题描述】:

我需要序列化具有另一个对象作为字段的对象。

问题是这个被引用的对象来自另一个我没有代码的 DLL。 因此,我无法为其添加[Serializable] 属性。

关于如何做的任何建议? 我正在考虑创建自己的Serializer 类,还有其他方法吗?

【问题讨论】:

【参考方案1】:

据我所知,自定义序列化程序似乎是合适的方法。

【讨论】:

【参考方案2】:

使用反射器重构代码并为其添加可序列化标签。

【讨论】:

如果被混淆了怎么办?如果此代码在System.dll 中怎么办? 如果代码在System.dll中,仍然可以反射...下载red gates .NET反射器并添加到Visual Studio中,只要你知道类名和DLL它来自,您可以查看该类的代码。【参考方案3】:

您可以使用 SerializeSurrogate,有关详细信息,请参阅 codeproject。

【讨论】:

以上是关于在 C# 序列化中,我需要序列化引用其他 DLL 中的对象而没有源代码的对象的主要内容,如果未能解决你的问题,请参考以下文章

在维护对象引用的同时序列化 C# 对象

C#调用Rust dll测试

C#调用Rust dll测试

将 C++ 对象传递给 C#

在 C# 中序列化和反序列化自引用对象

C#:在 GAC 中查找 PresentationCore.dll(和其他程序集)的路径