次の方法でWCFサービスを使用しています。
[OperationContract]
TernaryWebServiceResponse<long> ModifyObservations(...);
応答オブジェクトは次のとおりです。
[DataContract]
public class TernaryWebServiceResponse<T>
{
[DataMember]
public TernaryProcessingResultStatus ProcessingSuccessStatus { get; set; }
[DataMember]
public Dictionary<T, bool> ProcessingSuccessDetails { get; set; }
}
このクラスは共有アセンブリで定義され、WCF参照はそれを再利用するように構成されています。
しかし、プロキシを生成すると、次のようになります。
カスタムツールの警告:wsdl:portTypeをインポートできません詳細:WSDLインポート拡張機能の実行中に例外がスローされました:System.ServiceModel.Description.DataContractSerializerMessageContractImporterエラー:参照されたタイプ'TernaryWebServiceResponse`1、General、Version = 1.0.0.0、Culture = neutral、 PublicKeyToken = null'、名前空間'http://schemas.datacontract.org/2004/Genaral.SoapCommunication'のデータコントラクト名'TernaryWebServiceResponseOflong'は、インポートされたDataContractと一致しないため、使用できません。このタイプを参照タイプから除外する必要があります。
誰かplzが私を説明できますか、ここでの問題は正確には何ですか?ジェネリックは、解決されている限り、WCFコントラクトで使用できることを知ってMyObj<T>
いMyObj<long>
ます。では、このクラスの何が問題になっていますか?クラスで定義されたTが辞書でどういうわけか解決できないということですか?