Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 Visual Studio WCF客户端创建了缺少属性的类,但添加了ExtensionData属性_Visual Studio 2010_Wcf_Wcf Proxy - Fatal编程技术网

Visual studio 2010 Visual Studio WCF客户端创建了缺少属性的类,但添加了ExtensionData属性

Visual studio 2010 Visual Studio WCF客户端创建了缺少属性的类,但添加了ExtensionData属性,visual-studio-2010,wcf,wcf-proxy,Visual Studio 2010,Wcf,Wcf Proxy,我有一个WCFService,它以这种方式返回各种类型的数据: [DataContract( Name="Amazing", NameSpace="http://schemas.myorganisation.com/DataContract1")] Public class AmazingDto { [DataMember( Order=0, IsRequired=true )] public string Name { get; set; } [DataMember(

我有一个WCFService,它以这种方式返回各种类型的数据:

[DataContract( Name="Amazing", NameSpace="http://schemas.myorganisation.com/DataContract1")]
Public class AmazingDto
{
    [DataMember( Order=0, IsRequired=true )]
    public string Name { get; set; }

    [DataMember( Order=0, IsRequired=true )]
    public bool IsAmazing { get; set; }

}
然后

[DataContract ( Name="GetAmazingListResponse", NameSpace="http://schemas.myorganisation.com/DataContract1")]
Public class GetAmazingListResponseDto
{
     [DataMember(Order=0, IsRequired-true, EmitDefaultValue=False)]
     public ICollection<AmazingDto> AmazingList{ get; set; }
}
我发现
response
只有两个属性,
Status
ExtensionData
。我已经在其他SE问题中看到了这一点,但答案总是数据契约中缺少数据契约或数据成员。我肯定有这些,所以一定发生了其他事情,VS.Net无法看到我的课程。我曾尝试引用包含这些文件的DTO库,并尝试将引用配置为与该库的类型相匹配,但没有任何区别


哪里出了问题?

我找到的解决方案是,在我使用自己的WCF服务时,将接口导入到我的客户端,然后使用来设置连接。这在我的场景中非常有效,但不能解决我提出的这个问题。

只需将[DataMember]添加到您的数据成员中即可。它解决了我的问题。

您是否在任何地方指定OperationContract?是的,OperationContract位于服务类实现的接口上。
[DataContract(Name = "Response", Namespace = "http://schemas.myorganisation.com/DataContract1")]
public class ResponseDto<TData> : BaseResponseDto
{
    public ResponseDto();

    [DataMember(Order = 0, IsRequired = true)]
    public StatusDto Status { get; set; }

    [DataMember(Order = 1, IsRequired = false, EmitDefaultValue = false)]
    public TData Data { get; set; }
}
public ResponseDto<GetAmazingListResponseDto> GetAmazingList()
{
      var response = new ResponseDto<GetAmazingListDto>
       {
            Status = new StatusDto { StatusResult = StatusResultEnum.Success },
            Data = new GetAmazingListResponseDto
                 {
                     AmazingList = new List<AmazingDto>
                      {
                           new AmazingDto { Name="Ponies", IsAmazing=true },
                           new AmazingDto { Name="Glenatron", IsAmazing=false }
                       }
                 }
       };
       return response;
}
  <GetAmazingListResult xmlns:a="http://schemas.myorganisation.com/DataContract1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <a:Status>
           <a:StatusResult>Success</a:StatusResult>
        </a:Status>
        <a:Data xmlns:b="http://schemas.myorganisation.com/DataContract1">
           <b:AmazingList>
              <b:Amazing>
                 <b:Name>Ponies</b:Name>
                 <b:IsAmazing>true</b:IsAmazing>
              </b:Amazing>
              <b:Amazing>
                 <b:Name>Glenatron</b:Name>
                 <b:IsAmazing>false</b:IsAmazing>
              </b:Amazing>
           </b:AmazingList>
        </a:Data>
     </GetAmazingListResult>
var client= new FindoutAmazingnessServiceClient();
var response = client.GetAmazingList();