0

外部システムに SOAP メッセージを送信しようとしています。このシステムには、配列と列挙子を使用してコードに統合する必要がある定義済みのデータ型が既にあります。

私の問題は、列挙子変数が私に次のエラーを与えていることです:

エラー 1 タイプ 'UpdateRatePacks._Default.Rate.AvailAppType' を 'UpdateRatePacks.IService.AvailAppType?' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)

このエラーは、ページの型を Web サービスの型に変換できないことを示していますが、データ構造は同じです。

私はこのエラーをどこでも検索し、Web サービスの列挙子、配列の列挙子、列挙子を配列に変換することも検索しましたが、何も機能しませんでした。エラーはまだ同じです。

解析変換用の次のコード行も含まれています。

ureq.RatePackages[2].Rates[1].AvailabilityApplicationType = Rate.AvailAppType)Enum.Parse(typeof(Rate.AvailAppType), val);

このコードの複雑さは、配列に列挙子が含まれているため、列挙子で間違っているのか、配列自体で間違っているのか、Web サービス全体で間違っているのかわかりません。

これは、エラーの発生元のメッセージとして更新を送信するコードの一部です

 protected void SendSoapMessage()
 {

  Rate.AvailabilityApplicationType val  =  Rate.AvailAppType.SET;
  ureq.RatePackages[1].Rates[0].AvailAppType = val;

ureq は、送信先の Web サービスの UpdateRatePacks メソッドです。

以下に定義されているクラス/オブジェクト:

public class UpdateRatePacks
{
 public string Username;
 public string Password;
 public UpdateRatePack[] RatePackages;
}

    public class UpdateRatePack
    {
        public Int64 RatePackageId;
        public Rate[] Rates;

    }


    public class Rate
    {


        public enum AvailAppType { SET , INCREASE, DECREASE };


    }

どんなアドバイスでも大歓迎です。

4

1 に答える 1

2

ヒットしているWebサービスの生成されたプロキシコードですでに利用可能である場合、 AvailAppType列挙の独自のバージョンを作成しているように見えます。生成されたプロキシコードのバージョンの列挙を使用します。これはUpdateRatePacks.IService.AvailAppType?、独自に定義するのではなく、タイプとして私が信じているものです。それらは同じ列挙名を持っていますが、それらは別々の名前空間にあり、コンパイラーの観点からは異なっています。

お役に立てば幸いです。

于 2012-03-22T04:36:10.203 に答える