WSCF blue 从 xml-schema 中的选择生成类似这样的内容:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.some.com/nis/componentsync/v1.0", TypeName="tComponentKey")]
[System.Xml.Serialization.XmlRootAttribute(ElementName="tComponentKey")]
public partial class TComponentKey
{
private object itemField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("id", typeof(int))]
[System.Xml.Serialization.XmlElementAttribute("label", typeof(string))]
public object Item
{
get { return this.itemField; }
set { this.itemField = value; }
}
}
编辑:以下 2 行已整理。如果您在模式中添加一个类型为 string 或 int 的选项,则不能再仅按类型将它们分开。
在某些情况下,它还会生成 ItemElementName 或枚举的东西,所以我知道它是 id 还是 label。由于某种原因,它没有选择,所以我想知道这是否可以以某种方式设置/获取。
编辑:上面的 2 行已整理。见上面的解释
在 debugger 中,我可以看到对象的属性是什么。当我为属性分配字符串 ABC123 时,它可以显示 label=ABC123。所以它是基于类型的。但是 label 也可以是 int ,我想自己设置和获取它,而不是相信这种基于类型的废话。
编辑:反序列化为对象的请求消息中的 xml 示例:
在这里,消费者想要通过它的整数 id 来获取组件。
<v1:componentkey>
<!--You have a CHOICE of the next 2 items at this level-->
<v11:id>123123</v11:id>
</v1:componentkey>
在这里,消费者想要通过它的字符串标签来获取组件。
<v1:componentkey>
<!--You have a CHOICE of the next 2 items at this level-->
<v11:label>ABC123</v11:label>
</v1:componentkey>