まだ利用できないWebサービスのコードをテストしようとしています。私は自分のバージョンをダミーにしようとしています。仕様によると、このように呼び出されます。プロパティを持つWebサービスを作成できますか?
var service = new Service();
service.SD = new ServiceData();
service.SD.ID = "ABC123";
service.SD.Auth = "00000";
string result = service.DoMyThing();
これは私が得た最も近いものです。
var service = new Service();
service.set_SD(new ServiceData());
service.get_SD().ID = "ABC123";
service.get_SD().Auth = "00000";
service.DoMyThing();
問題はSDプロパティにあります。 Visual Studio 2008でWeb参照が正しく生成されるように、サービスを作成するにはどうすればよいですか?
私の現在のダミーのWebサービスコードです。
public class Service : System.Web.Services.WebService
{
// This doesn't show up in the generated proxy at all
public static ServiceData SDTest;
// For extra credit explain why this needs to be static for it to work
private static ServiceData _sd;
public ServiceData SD
{
[WebMethod(EnableSession = true)]
get { return _sd; }
[WebMethod(EnableSession = true)]
set { _sd = value; }
}
[WebMethod]
public string DoMyThing()
{
// Presumably the real service accesses SD in here
return "";
}
}
public class ServiceData
{
public string ID { get; set; }
public string Auth { get; set; }
}
これは機能しません。 SDプロパティはありません。メソッドパラメータとして "sd"を渡します。 –
いいえ、私はそれが.Netでうまくいくと確信しています。これはカスタムSOAPヘッダーとして送信されます。参照:http://www.codeproject.com/KB/webservices/SOAPHeaderAuthentication.aspx –
カスタムSOAPヘッダーがある場合にのみ機能します。 WSDLによって宣言されていなければなりません。 –