gpt4 book ai didi

c# - 通过反射获取XmlRootAttribute.ElementName

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

我有两个继承自 BaseClass 的子类。 我正在尝试对 BaseClass 类型 的对象使用反射来获取 XmlRootAttribute.ElementName 值。那么,如果有人传入一个 BaseClass 对象,我怎么才能得到值“ChildClass1”或“ChildClass2”呢?

[Serializable]
public class BaseClass {
// Base properties
}

[XmlRoot("ChildClass1")]
public class ChildClass1 : BaseClass {
// Child1 properties
}

[XmlRoot("ChildClass2")]
public class ChildClass2 : BaseClass {
// Child2 properties
}

最佳答案

这是我想出的解决方案:

public static string GetElementName(BaseClass target)
{
XmlRootAttribute attribute = target.GetType().GetCustomAttribute<XmlRootAttribute>();
return attribute == null ? null : attribute.ElementName;
}

用法是这样的:

BaseClass baseClass = new BaseClass();
BaseClass child1 = new ChildClass1();
BaseClass child2 = new ChildClass2();

Console.WriteLine(GetElementName(baseClass)); // empty string
Console.WriteLine(GetElementName(child1)); // ChildClass1
Console.WriteLine(GetElementName(child2)); // ChildClass2

关于c# - 通过反射获取XmlRootAttribute.ElementName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749306/

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