簡體   English   中英

從同一Web服務調用Web方法

[英]Calling web methods from the same web service

我需要為特定Web服務中公開的Web方法集合編寫包裝器。 將這個新的包裝器方法粘貼在同一個服務中是有意義的,因為它會影響相同類型的對象。

大多數這些Web方法只是在其他文件中調用靜態方法的瘦方法,這很好,但是在這些靜態方法調用之前它們也有一些安全邏輯。 而不是在我想要包裝的每個方法調用之前重新創建安全邏輯,是否可以從本地內部的同一服務中調用這些其他Web方法,或者這是不好的做法?

這是一個例子:

[WebMethod]
public int SmallMethod1(int a)
{
    //SecurityLogic
    return AnObject.StaticMethod1();
}

[WebMethod]
public int SmallMethod2(int b)
{
    //SecurityLogic
    return AnObject.StaticMethod2();
}

[WebMethod]
public int WrapperMethod(int c)
{
    return AnObject.StaticMethod1() + AnObject.StaticMethod2();
}

一般情況下,您希望盡可能干凈地將Web服務的公共接口與實際實現分開,在您的示例中,通過將它們封裝在AnObject來完成此操作, AnObject允許單獨測試封裝的方法(否則這是一個大問題)特別是使用網絡方法)。

從測試的角度說,我建議這樣做:

[WebMethod]
public int WrapperMethod(int c)
{
    return AnObject.WrapperMethod(c)
}

這將允許您編寫直接測試WrapperMethod測試(封裝在AnObject ),而不是嘗試在單元測試中重新創建AnObject.StaticMethod1() + AnObject.StaticMethod2()的測試 - 這會很快變得混亂,因為現在你有相同的兩個不同點的邏輯。

一點也不。 封裝該邏輯是一個非常好的主意。 你可以有一個AnObject.WrapperStaticMethod()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM