gpt4 book ai didi

c# - 如何递归地找到对象及其成员使用的所有类型?

转载 作者:行者123 更新时间:2023-11-30 17:17:46 25 4
gpt4 key购买 nike

我正在尝试使用 DataContractJsonSerializer 序列化和反序列化包含不同类型的对象 [] 的 c# 对象。

我需要找到 XmlRequest 使用的所有类型及其 object[] 中的对象,因此我将类型列表传递给 DataContractJsonSerializer。

XmlRequest 中的对象[] 将包含不同的类型。 TypeX, TypeY, string, int, TypeZ

var sr = new DataContractJsonSerializer(typeof(XmlRequest), knownTypes);

Xml 请求类:

[DataContract]
public class XmlRequest
{
[DataMember]
public object[] Parameters { get; set; }

[DataMember]
public string Name { get; set; }

}

最佳答案

我看到了问题的答案,如书面的那样,但想进一步探索。

您是否正在尝试通用化 XmlRequest,以便它可以接受一个或多个单一类型的对象,如:

Object[] ary = new Object[] { new MyObject(), new MyObject() };

或者您实际上是将多个类型放入一个数组中,如:

Object[] ary = new Object[] { new MyObject(), new MyOtherObject() };

如果您正在做前者,请考虑使用泛型。对于 Request,不是最异构的解决方案,但 XmlRequest 是加载对象、单一类型数组等的绝佳方式。

如果您使用前者并使用泛型并且不需要更繁重的“检查每种类型”方法,那么序列化会更容易,因为参数数组是强类型的。

关于c# - 如何递归地找到对象及其成员使用的所有类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6266087/

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