none
请问wcf中返回数组时出错,如何解决。 RRS feed

  • 问题

  •  

    [DataContract]
    public class Test
    
    {
    [DataMember]
    public string T1{get;set;}
    
    [DataMember]
    public string T2{get;set;}
    
    }
    
    

     

    如果返回的数组是  int[] 或 string[] 型是没有问题的,如果是  Test[],就会出现找不到终结点的错误。

    如果直接返回 Test而不是Test[],也没问题。我纠结了。

     

    谢谢。

    2010年5月30日 14:11

答案

  • 对于值类型,你需要小心设置 IsRequired, EmitDefaultValue 这两个属性.

    由于这两个属性设置导致的异常是会准确报错的,你可以查看InnerException和BaseException.

    它会准确的告诉你,某个属性的值被要求必须提供,而又未提供恰当的值.

    2010年5月31日 1:08

全部回复

  • 我也很纠结,因为你描述的问题更像是一个WCF的BUG,除非你还有没有描述完备的应用上下文。

    返回的 Test[] 多大?

    2010年5月30日 15:05
  • 很小,远远达不到wcf设定的上限.
    2010年5月30日 15:07
  • ...我找到问题了,在实际类当中,存在一个枚举,枚举的初使值是0。使用枚举的值不存在0。晕。报错不准备害死人啊。
    2010年5月30日 15:52
  • 对于值类型,你需要小心设置 IsRequired, EmitDefaultValue 这两个属性.

    由于这两个属性设置导致的异常是会准确报错的,你可以查看InnerException和BaseException.

    它会准确的告诉你,某个属性的值被要求必须提供,而又未提供恰当的值.

    2010年5月31日 1:08
  • 好的,谢谢,这两个属性还真没太看重。
    2010年5月31日 1:29