- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个继承自 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/
我有一个正在使用 C# 的 XmlSerializer 序列化的类.它标有 XmlRoot属性,我想在派生类中继承这个属性。 查看文档,它没有说 XmlRoot 使用 AttributeUsageAt
我对 xml 序列化有一个奇怪的要求。 请引用以下 C# 代码(由于变量 'rootName' 超出范围而无法编译)。我的意图是让我的类(class) GeneralData 成为“一般”。这意味着该
我有一个名为 School 的类,它是可序列化的。当它序列化/反序列化时,我需要将根元素称为学校而不是学校,而不必将类(class)名称更改为学校。所以我通过以下方式使用了 xmlroot 属性: [
基本上问题是我有一组存在于多个命名空间中的 XML 标记,但是因为 XML 命名空间是愚蠢的,这是不允许的,所以我需要在运行时根据数据的去向换出命名空间。 假设我有这个用于序列化/反序列化 XML 的
我目前遇到了一个非常奇怪的问题,我似乎无法弄清楚如何解决它。 我有一个相当复杂的类型,我正在尝试使用 XmlSerializer 类对其进行序列化。这实际上运行良好并且类型正确序列化,但这样做似乎花费
这是我的 xml: ohKiUAZWz2 ミ★нιяαℓ §|-|ä|-|»♥«
我有以下 XML TWTR twitter.com FB facebook.com SO stackoverflow.
我有一个名为 Car 的类,它有一个名为 LicencePlate 的属性,当我用 XmlRootAttribute Cars 序列化一个列表时,创建的 XML 是 序列化代码是 XmlS
我想在 C# 中预取一组已知类类型的 XmlTypeMapping 以加速它们的 XML 反序列化,同时将新的 XmlSerializer 实例化为 XmlReflectionImporter.Imp
我是一名优秀的程序员,十分优秀!