2010-09-27 104 views
1

我正在经历一个非常基本的Web服务开发的奇怪行为。这个问题可能是愚蠢的,但我认为有人可以解释这个观察。这是一个命名空间问题?

我开发一个Web方法Web服务,MyWebMethod

MyWebMethod(MyEnum Param, .....) 

其中,

public enum MyEnum : int 
    { 
     Type_1 =1; 
     Type_2 =2; 
     Type_3 =3; 
    } 

现在我用我的客户端与该服务进行沟通,但对于每一个请求类型,TYPE_1 ,Type_2等服务将其捕获为Type_1。例如,如果我在Web服务中的MyWebMethod中创建了一个断点,我将Type_1看作param1类型。我想这是一个与Namespacing有关的问题。我在代码中看不到任何其他缺陷。基于经验的任何想法?

+1

绝对不是 '命名空间' 的问题。无论如何。 – leppie 2010-09-27 06:35:05

+1

发布您的“客户端”代码可能会有所帮助.. – Manish 2010-09-27 06:36:40

+0

那么您期望什么呢?你是否希望他们作为int类型? :) – 2010-09-27 06:41:43

回答

0

如果这是一个WCF Web服务,并且在方法签名中为每个值类型生成了一个.NET 2.0客户端,则会添加一个名为XXXSpecified的布尔参数,您需要将其设置为true。查看blog post了解更多详情。

0

我想你的枚举不需要从int继承。您在枚举中提供了名称和值,这应该足够了。我假设你的所有代码都是.NET 2.0。作为测试,从webservice返回一个枚举值。只是为了确保在浏览器直接访问服务时XML序列化按预期工作。