gpt4 book ai didi

c# - 我可以序列化 C# Type 对象吗?

转载 作者:IT王子 更新时间:2023-10-29 03:50:59 25 4
gpt4 key购买 nike

我正在尝试以下列方式序列化一个 Type 对象:

Type myType = typeof (StringBuilder);
var serializer = new XmlSerializer(typeof(Type));
TextWriter writer = new StringWriter();
serializer.Serialize(writer, myType);

当我这样做时,对 Serialize 的调用抛出以下异常:

"The type System.Text.StringBuilder was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically."

有没有办法序列化 Type 对象?请注意,我不是要序列化 ​​StringBuilder 本身,而是要序列化包含有关 StringBuilder 类元数据的 Type 对象。

最佳答案

我不知道可以仅使用包含完全限定名称的字符串来创建 Type 对象。要获取完全限定名称,您可以使用以下内容:

string typeName = typeof (StringBuilder).FullName;

然后您可以根据需要保留此字符串,然后像这样重建类型:

Type t = Type.GetType(typeName);

如果你需要创建一个类型的实例,你可以这样做:

object o = Activator.CreateInstance(t);

如果您检查 o.GetType() 的值,它将是 StringBuilder,正如您所期望的那样。

关于c# - 我可以序列化 C# Type 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12306/

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