C# 无法隐式转换类型是否缺少强制转换?数组、枚举数和Web服务

C# 无法隐式转换类型是否缺少强制转换?数组、枚举数和Web服务,c#,.net,arrays,web-services,enumerators,C#,.net,Arrays,Web Services,Enumerators,我正在尝试向外部系统发送soap消息,这个系统已经有预定义的数据类型,我必须使用数组和枚举器将这些数据类型集成到我的代码中 我的问题是枚举器变量给了我以下错误: 错误1无法将类型“UpdateRatePacks.\u Default.Rate.AvailapType”隐式转换为“UpdateRatePacks.IService.AvailapType?”。存在显式转换(是否缺少强制转换?) 错误表明它无法将页面上的类型转换为Web服务上的类型,但数据结构是相同的,我是否遗漏了什么 我到处都搜索了

我正在尝试向外部系统发送soap消息,这个系统已经有预定义的数据类型,我必须使用数组和枚举器将这些数据类型集成到我的代码中

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

错误1无法将类型“UpdateRatePacks.\u Default.Rate.AvailapType”隐式转换为“UpdateRatePacks.IService.AvailapType?”。存在显式转换(是否缺少强制转换?)

错误表明它无法将页面上的类型转换为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 };


    }

如果您有任何建议,我们将不胜感激。

看起来您正在创建自己版本的AvailapType枚举,而该枚举已在您访问的web服务的生成代理代码中可用。使用生成的代理代码的枚举版本,我认为是
UpdateRatePacks.IService.availaptype?
作为类型,而不是定义自己的类型。尽管它们具有相同的枚举名称,但它们位于不同的名称空间中,因此在编译器眼中它们是不同的


希望能有所帮助。

@user1270384,是的!请尝试将错误代码行更改为“ureq.rateppackages[1]。Rates[0]。AvailapType=UpdateRatePacks.IService.AvailapType.SET”-正如回答中指出的,上述枚举已在代理代码中可用。这太简单了,我不知道为什么我没有尝试。非常感谢你!错误信息消失了!