是否可以将对象及其Type参数传递给没有Type的应用程序并创建它的实例?
例如
Application A
有Type Foo
我们实例化它并将值Object
和Type
发送到应用B
Application B
没有对Foo
那么可以说System.Convert.ChangeType(object, Type)
并且能够转换对象或CreateInstance以便能够创建该类型的新实例吗?
如果这令人困惑,那么让我们说,我不确定ChangeType是否使用类型信息来转换类型,或者它是否简单地执行DLL查找。
答案 0 :(得分:1)
.NET使用来自.DLL的类型元数据来处理类型,包括对象创建。所以,不,.NET不能在没有这个元数据的情况下创建实例。
此外,您无法在应用程序之间发送任何复杂数据。您只能将数据序列化为二进制/ XML / JSON / something-else格式,然后对其进行反序列化。
.NET应用程序可以序列化和反序列化标准.NET类型,例如。整数,浮点数,字符串,日期和时间,时间跨度,IP地址,异常等。
如果您想支持自己的类型,则应在应用程序之间共享。首先,您可以在源代码中实现它并将项目插入到两个解决方案中。其次,你可以共享DLL。至少您可以将程序集打包到NuGet数据包并将此数据包安装到两个解决方案中。
当然你应该让你的类型可序列化。