2013-04-04 123 views
1

我必須創建一個C#web服務。我有個問題。是否可以使用ref參數? 例如,我有這樣的方法帶參考參數的C#Web服務

//my web service will fill the parameter by reference 
int myWSMethod(int parameterA, ref string parameterB); 

這可能與Web服務?

+1

你爲什麼不傳遞的信息是作爲常規參數,你可以解釋爲什麼你認爲你需要一個裁判帕拉姆看看這需要' SO'發佈http://stackoverflow.com/questions/379648/net-webservices-and-out-ref-webmethod-arguments – MethodMan 2013-04-04 19:01:22

+1

當您通過Web服務交換變量時,它將變爲序列化。你期望'ref'做什麼?請解釋您正在嘗試解決的實際問題。 – CodeCaster 2013-04-04 19:08:08

+0

@ DJ KRAZE我想使用這種類型的參數,因爲我想有一個方法返回一個錯誤代碼(返回int),但也是一個Web服務實現的報告(ref參數) – Safari 2013-04-04 19:10:54

回答

5

如果您的問題只是試圖找出如何從Web服務返回多個值,只需返回一個複雜的類型。

[DataContract] 
[Serializable] 
public class myWSMethodResponse 
{ 
    [DataMember] 
    public int ErrorCode { get; set; } 
    [DataMember] 
    public string Report { get; set; } 
} 

public myWSMethodResponse myWSMethod(int parameterA) 
{ 
    //code here 
} 
+0

雖然不是OP所要求的,但這絕對是最合理的解決方案。 – 2013-12-11 10:02:02

1

我不確定你爲什麼要這樣做,但基於MSDN,你可以做到這一點。

OutRef參數

在大多數情況下,你可以使用參數(在Visual Basic ByVal)和outref 參數(ByRef在Visual Basic中)。因爲outref參數都指示 數據是從操作返回的,所以操作簽名(如以下 )指定即使操作簽名返回void也需要執行請求/答覆操作。

例子:

[ServiceContractAttribute] 
public interface IMyContract 
{ 
    [OperationContractAttribute] 
    public void PopulateData(ref CustomDataType data); 
}