0
// Reference.cs
// Conveintly serializable
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:schemas-sc-jp:mfp:osa-1-1")]
public partial class CREDENTIALS_TYPE : CREDENTIALS_BASE_TYPE {

    private string datatypeField;

    private OPAQUE_DATA_TYPE metadataField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("data-type")]
    public string datatype {
        get {
            return this.datatypeField;
        }
        set {
            this.datatypeField = value;
        }
    }

    /// <remarks/>
    public OPAQUE_DATA_TYPE metadata {
        get {
            return this.metadataField;
        }
        set {
            this.metadataField = value;
        }
    }
}

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.225")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:schemas-sc-jp:mfp:osa-1-1")]
public partial class OPAQUE_DATA_TYPE {

    private System.Xml.XmlElement[] anyField;

    private System.Xml.XmlAttribute[] anyAttrField;

    /// <remarks/>
    [System.Xml.Serialization.XmlAnyElementAttribute()]
    public System.Xml.XmlElement[] Any {
        get {
            return this.anyField;
        }
        set {
            this.anyField = value;
        }
    }

    /// <remarks/>
    [System.Xml.Serialization.XmlAnyAttributeAttribute()]
    public System.Xml.XmlAttribute[] AnyAttr {
        get {
            return this.anyAttrField;
        }
        set {
            this.anyAttrField = value;
        }
    }
}

ネットワーク上のデバイスからデータを取得する webmethod があります。このデータの一部は、デバイスでの認証に使用される資格情報です。

API を使用しているため、このデータを受け取るには、webmethod のパラメータ タイプとして CREDENTIALS_TYPE が必要です。私がする必要があるのは、このデータを保存することです。これにより、webmethod なしで取得できます。

以前にクラスを XML ファイルにシリアル化したことがあるので、おなじみのオプションを使用しましたが、独自に作成したクラスのみを使用しました。私のものではない参照されたクラスで同じことを実際に行うことができるかどうかを知りたいですか?

CREDENTIALS_TYPE に一致するクラスを作成し、データをコピーする必要がありますが、異なるタイプ間で変換する方法を見つけることができませんでした。

「CREDENTAILS_TYPE」は複合機から来ているので、コードを反映して変更するのはどうせ更新できないので私の状況ではダメです。

提案/アドバイスはありますか?

4

1 に答える 1

1

ソースコードを所有していないクラスを変更することはできないため、必要なシリアル化属性を使用して独自のDTOを作成し、Automapperを使用して2つの間でフィールドデータを転送します。

于 2012-04-17T17:40:34.217 に答える