这似乎是一个简单的问题,但我认为我会向社区伸出这个问题。我在流中序列化.NET类型,并且需要某种方式来唯一地标识每个类型,以便我知道如何在另一侧反序列化类型。我想到了各种方法:
我希望能够在不需要属性的情况下做到这一点。使用整数是容易发生冲突的。每次创建新类型时生成GUID都很麻烦。第三种选择似乎是可能的,但也有可能发生冲突,尽管有些孤立。
我希望能够以确定的方式推断出这种唯一性,以便任何对象都可以在另一端传入和反序列化,而不必以某种方式标记它。假设我已经有办法在两端注册所有已知类型,因此在发送任何消息之前,两端都已经有一个可接受类型的列表。我想做的就是让注册这些已知类型的过程不那么笨重。
编辑:我希望尽可能地在线上尽可能小,同时仍然达到我所需的独特性。
答案 0 :(得分:3)
您可以使用Type.GUID
例如......
如果不符合您的情况,请提供更多详细信息......
答案 1 :(得分:1)
除了可用的答案,我建议使用完全限定的类型名称。它已经保证了应用程序域内的唯一性。