2017-10-06 13 views
0

C#コードから次のSOAPメッセージを生成する必要があります。C#コードの属性を持つSOAPメッセージを生成する

<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <wsu:Timestamp wsu:Id="TS-3DCA13685AB558766615063665309446"> 
     <wsu:Created>2017-09-25T19:08:50.943Z</wsu:Created> 
     <wsu:Expires>2017-09-25T20:48:50.943Z</wsu:Expires> 
    </wsu:Timestamp> 
    <wsse:UsernameToken wsu:Id="UsernameToken-3DCA13685AB558766615063665252595"> 
     <wsse:Username>prdIDXXXX</wsse:Username> 
     <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXXX</wsse:Password> 
     <wsu:Created>2017-09-25T19:08:45.259Z</wsu:Created> 
    </wsse:UsernameToken> 
    </wsse:Security> 

私は、次のコードを試してみました:

// SOAP header class 
public class Security : SoapHeader 
{ 
    public Timestamp Timestamp { get; set; } 
    public UsernameToken UsernameToken { get; set; } 
} 

public class Timestamp 
{ 
    public string Created { get; set;} 
    public string Expired { get; set; } 
} 

public class UsernameToken 
{ 
    public string Username { get; set; } 
    public string Password { get; set; } 
    public string Created { get; set; } 
} 

をしかし、これは、SOAP XMLに存在する属性を生成しません。たとえば、タイムスタンプフィールド内の「ID」属性、または「パスワード」フィールド内の「タイプ」属性。

どのようにC#コードで属性を生成できますか?

答えて

0

[XmlAttribute]を使用して、プロパティの値をxml属性としてレンダリングします。

public class UsernameToken 
{ 
    [XmlAttribute] 
    public string Id{ get; set; } 
    public string Username { get; set; } 
    public string Password { get; set; } 
    public string Created { get; set; } 
} 
関連する問題