2010-04-28 31 views
1

我知道這有點奇怪,特別是因爲一個頁面從System.Web.Page(或其他)繼承而來,WebService從System.Web.Service(或其他)繼承。ASP.NET頁面也可以成爲WebService嗎?

但只是想我會問有沒有辦法做到這一點?有沒有人有這樣做的建議?

public class MyWebService : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public String MyMethod() 
    { 
     return ""; 
    } 
} 

public class MyWebPage : System.Web.UI.Page 
{ 
    protected void ExecuteButton_Click(Object sender, EventArgs e) 
    { 
     ... 
    } 
} 
+1

爲什麼你想有一個aspx頁面的行爲像一個Web服務? – rahul 2010-04-28 06:20:12

+0

我有需要。我們有一個具有遺留代碼的ASP.NET頁面,我們希望通過Web服務公開它,我們很樂意去做「正確的事情」。我們處於緊張狀態。 – halivingston 2010-04-28 06:53:58

+0

雖然你可以使這個靜態,並通過引用頁面名稱從webservice直接調用它,爲什麼不把這種方法添加到現有的服務之一,並從那裏調用它。 – 2010-04-28 06:59:48

回答

1

不確定你在找什麼,但是你可以在[.aspx.cs]頁面上將[WebMethod]作爲你的方法的一個屬性。我用它從.aspx頁面執行這個方法。

例如: -

[WebMethod] 
public static void YourMethod(string parameter) 
{  

} 

從已發佈的我不能看靜態方法件事網頁上的代碼,其次我沒有看到你的服務的方法調用。 嘗試做這樣的事情

public static type MyMethodOnPage() 

和在役方法調用此靜態方法。

public type MyMethodInService() 
{ 
    return MyPageName.MyMethodOnPage(); 
} 
+0

好吧,我可以做這樣的代碼隱藏這個aspx頁面的Web服務調用嗎? – halivingston 2010-04-28 06:29:50

+0

您可以使用PageName.MethodName(),因爲這是靜態方法。 – 2010-04-28 06:34:03

+0

這有什麼好處?如果你沒有從WebService繼承,它將不會生成wsdl等。這個WebMethod屬性本身是什麼添加的? – 2010-04-28 06:54:53

0
+0

好的,這有些幫助。但讓我用我真正想要的東西來更新這個問題。 – halivingston 2010-04-28 06:48:39

+0

你的意思是說,你想訪問的aspx頁作爲Web服務,並希望在另一個應用程序中使用? 在那種情況下,沒有WSDL它將如何工作? – Dinesh 2010-04-28 09:09:36

相關問題