私は必死です。既存のサービス参照をWCFサービス(共有タイプ)に更新しようとしていますが、更新できません。Googleで見つけたもの(social.msdn、stackoverflowなど)をすべて試しましたが、問題の解決策が見つかりませんでした。
ServiceContractがあり、次のコードのような新しいオペレーションを追加します。
[ServiceContract]
public partial interface IServiceDTO : IGenericServiceDTO<EntityDTO>
{
// Some OperationContracts working like
[OperationContract]
EntityDTO[] Method(int field);
// NewMethod
[OperationContract]
OtherEntityDTO[] NewMethod(int field);
}
[DataContract]
public class EntityDTO {
// Some properties working
}
[DataContract]
public class OtherEntityDTO {
// Some properties working
[DataMember]
YetAnotherEntity NewProperty {get;set;}
}
サービス参照を更新しようとすると、次のエラーがスローされます。
WS-MetadataExchangeまたはDISCOを使用して「http:// localhost:65499 / Services / Acciones/ProcesoServiceDTO.svc」からメタデータをダウンロードしようとしています。エラー:wsdl:portTypeをインポートできません詳細:WSDLインポート拡張機能の実行中に例外がスローされました:System.ServiceModel.Description.DataContractSerializerMessageContractImporterエラー:参照されたタイプ'mpm.seg.ServiceModel.DTO.DataContracts.Acciones.ProcesoDTO、mpm.seg。 ServiceModel.DTO.DataContracts、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null'、名前空間'http://schemas.datacontract.org/2004/07/mpm.seg.ServiceModelのデータコントラクト名'ProcesoDTO'。 DTO.DataContracts.Acciones'は、インポートされたDataContractと一致しないため、使用できません。このタイプを参照タイプから除外する必要があります。エラーソースへのXPath:// wsdl:definitions [@ targetNamespace = '
まず、「インポートされたDataContractと一致しないため、使用できません」という文が正確にわかりません。svcutilは、参照されたタイプをインポートされたDataContractにどのように一致させようとしていますか?クライアントプロジェクトで参照されているタイプのプロジェクトを参照しました。サーバーとクライアントが同じソリューションに含まれているためですが、それらを分離して、まったく同じdllも参照しようとしました。
また、たとえば、次のような状況で試してみると(「OtherEntityDTO toEntityDTO」の「NewProperty」と書く)、違いがわかりません。
[ServiceContract]
public partial interface IServiceDTO : IGenericServiceDTO<EntityDTO>
{
// Some OperationContracts working like
[OperationContract]
EntityDTO[] Method(int field);
// NewMethod
[OperationContract]
OtherEntityDTO[] NewMethod(int field);
}
[DataContract]
public class EntityDTO {
// Some properties working
[DataMember]
YetAnotherEntity NewProperty {get;set;}
}
[DataContract]
public class OtherEntityDTO {
// Some properties working
}
どうか、私を助けて、事前に感謝します。