gpt4 book ai didi

c#-4.0 - C#中的二进制反序列化通用对象

转载 作者:行者123 更新时间:2023-12-02 15:37:18 24 4
gpt4 key购买 nike

我有一个可以序列化的泛型类:

MyOwnGenericClass<T>

所以我想反序列化它,如果TString实例处理它,在另一种情况下我想抛出异常。

如何知道 MyOwnGenericClass<T> 中包含的泛型类型在反序列化时?我必须将以下代码转换到哪个类?

new BinaryFormatter().Deserialize(fileStrieam);

最佳答案

这真的很简单。只需使用 object像这样:

object obj = new BinaryFormatter().Deserialize(fileStrieam);

然后按照你说的去做:

if (!(obj is MyOwnGenericClass<string>))
throw new Exception("It was something other than MyOwnGenericClass<string>");
else {
MyOwnGenericClass<string> asMyOwn_OfString = obj as MyOwnGenericClass<string>;

// do specific stuff with it
asMyOwn.SpecificStuff();
}

所以你没有检查 Tstring .您要检查的不止于此:您正在检查 obj 是否为 MyOwnGenericClass< string > .没有人说它永远是MyOwnGenericClass< something >我们唯一头疼的是找到那东西是什么。

您可以发送 bool 值、字符串、整数、原始整数数组,甚至是 StringBuilder。 .然后是您的随行人员:您可以发送 MyOwnGenericClass< int > , MyOwnGenericClass< string > (这是您唯一接受的)。

关于c#-4.0 - C#中的二进制反序列化通用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com