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行被整理出来。见上面的解释
在degbugger中,我可以看到对象的属性是什么。当我为属性分配字符串ABC123时,它可以显示label = ABC123。所以它基于类型。但是标签也可以是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>