嘗試在具有相同代碼庫的兩個系統之間發送複雜類型。他們都知道與數據傳輸介質相同的對象。但是,當我在消費者代理上傳遞對象時,它在Web服務名稱空間中顯示爲對象而不是應用程序中的對象。Wcf對象類型
有無論如何,我可以定義使用內部對象?
[WebMethod]
public void Run(TransportObject transport)
出現在我的應用程序MyNamespace.Webservice.Transport
,而不是MyNamespace.Objects
嘗試在具有相同代碼庫的兩個系統之間發送複雜類型。他們都知道與數據傳輸介質相同的對象。但是,當我在消費者代理上傳遞對象時,它在Web服務名稱空間中顯示爲對象而不是應用程序中的對象。Wcf對象類型
有無論如何,我可以定義使用內部對象?
[WebMethod]
public void Run(TransportObject transport)
出現在我的應用程序MyNamespace.Webservice.Transport
,而不是MyNamespace.Objects
正如亨克所說,WCF中的類型共享是默認行爲。
我將有資格通過擴大它並演示瞭如何實現它:
因此而不是讓Visual Studio中爲你生成一個服務引用,你可以有WCF創建代理時,執行由使用的ChannelFactory。
例如:
// Create service proxy on the fly
var factory = new ChannelFactory<IMyServiceContract>("NameOfMyClientEndpointInConfigFile");
var proxy = factory.CreateChannel();
// Create data contract
var requestDataContract = new MyRequestType();
// Call service operation.
MyResponseType responseDataContract = proxy.MyServiceOperation(requestDataContract);
在上面的例子中,IMyServiceContract
是您的服務合同,並0和MyResponseType
是數據的合同,您可以通過引用該服務還引用(它定義了組件使用這些類型)。
[WebMethod]
意味着它是一個基於ASMX服務,而不是一個WCF服務下...
在[ServiceContract]
[OperationContract]
再試一次
在WCF中共享類型是可能的,我認爲它甚至是默認行爲。
@marc_s - 是的,你是對的。我會編輯。 – 2012-03-19 11:47:28
'[WebMethod]'不是WCF - 它是ASMX。 – 2013-01-10 06:44:35