0

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>
4

0 回答 0