2015-06-17 50 views
2

我寫了一個通用的擴展幫助器方法來初始化SoapHeader的一些參數,但它不更新返回的對象。爲什麼這個擴展方法不能初始化返回的對象?

我錯過了什麼?

using System.Web.Services.Protocols; 

    public class Header: SoapHeader {} 

    public class WS { 
     public Header securityHeader { 
     get; 
     set; 
     } 

    } 
    public static class SecurityHeaderExtensions { 

     public static T GetSecurityHeader <T> (this T header, string actor, string role) where T: SoapHeader, new() { 

     T result = new T() { 
      Actor = actor, Role = role 
     }; 

     Console.WriteLine("Actor: " + actor); //prints actor 
     Console.WriteLine("Actor: " + result.Actor); //prints blank 
     return result; 

     } 
    } 

    void Main() { 
     var ws = new WS(); 
     ws.securityHeader = ws.securityHeader.GetSecurityHeader("actor", null); 

    } 
+0

你能澄清你期望什麼,發生了什麼事SOAP 演員的1.2版本被稱爲SOAP 角色的接受者? –

+0

'ws.securityHeader'類型是什麼? –

+0

看起來'Actor'的屬性設定器正在拋棄該值。 – Amy

回答

5

似乎ActorRole是相同的領域內。

將其設置爲actor然後將其設置爲空意味着它是null

的數據,在SOAP規範和版本1.1

+1

偵探很好。這根本不明顯。 – StriplingWarrior

相關問題