0

我正在尝试将肥皂消息发送到外部系统,该系统已经具有预定义的数据类型,我必须使用数组和枚举器将其集成到我的代码中。

我的问题是枚举变量给了我以下错误:

错误 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

看起来您正在创建自己的AvailAppType枚举版本,当它已经在您正在访问的 Web 服务的生成代理代码中可用时。使用生成的代理代码版本的枚举,我相信这是UpdateRatePacks.IService.AvailAppType?类型而不是定义你自己的。尽管它们具有相同的枚举名称,但它们位于不同的命名空间中,这使得它们在编译器的眼中是不同的。

希望有帮助。

于 2012-03-22T04:36:10.203 回答