0

2つのアプリケーションがあります。

1 つは私の Web サービスへの webreference を使用し、2 番目は私の Web サービスへの servicereference を使用します。

私が呼び出している方法があります:

[WebMethod]
public Car[] GetCars(string carCode)
{
 Cars[] cars= ModelToContract.ToCars(MyFacade.GetCars(carCode);
return cars;
}

車には 2 つのプールがあります。

string Code {get;set;}
CarType Type {get;set;}

public enum CarType
{
Van=0,
Pickup=1
}

この webMethod をデバッグしていますが、...

最後に、webservice は車の良いコレクションをスローします。これには車が 1 台あります: code="bmw",Type.Van

しかし...webrefenceを持つアプリケーションは同じコレクションを受け取り、servicereferenceを持つアプリケーションはフィールドコードがnullのコレクションを取得します...

servicereference の呼び出し:

MyService myService=new MyService()
Cars[] cars= client.GetCars(carcode);

Web サービスの呼び出し:

MyService.MyServiceSoapClient client = new MyServiceS.MyServiceSoapClient();
            Cars[] cars= client.GetCars(carcode);
4

1 に答える 1

2

うーん、シリアル化の問題です。

モデルは次のようになります。

[Serializable]
public class Car
{
    [XmlElement]
    string Code {get;set;}

    [XmlElement]
    CarType Type {get;set;}
}

戻り値の型も確認できます:

MyService myService=new MyService()
MyService.Car[] cars= myService.GetCars(carcode);

-

MyServiceS.MyServiceSoapClient client = new MyServiceS.MyServiceSoapClient();
MyServiceS.Car[] cars= client.GetCars(carcode);
于 2010-04-23T08:20:32.997 に答える