私のWCFサービスでは、列挙型を次から変更するだけです:
/// <summary>
/// The DocumentState enum.
/// </summary>
[DataContract]
public enum DocumentState
{
/// <summary>
/// Undefined.
/// </summary>
[EnumMember]
Undefined,
/// <summary>
/// OK.
/// </summary>
[EnumMember]
Ok
}
に:
/// <summary>
/// The DocumentState enum.
/// </summary>
[DataContract]
[Flags]
public enum DocumentState
{
/// <summary>
/// Undefined.
/// </summary>
[EnumMember]
Undefined = 0,
/// <summary>
/// OK.
/// </summary>
[EnumMember]
Ok = 1
}
クライアント側では、問題なく WCF 参照を更新しますが、再構築後に次のようになります。
エラー 5 カスタム ツール エラー: サービス参照 'MyService' のコードを生成できませんでした。詳細については、その他のエラーおよび警告メッセージを確認してください。
このフラグ列挙型の何が問題になっていますか?
アップデート:
わかりました..警告でこれを見つけましたが、これは本当に役に立ちません:
警告 1 カスタム ツールの警告: wsdl:portType をインポートできません 詳細: WSDL インポート拡張機能の実行中に例外がスローされました: System.ServiceModel.Description.DataContractSerializerMessageContractImporter エラー: 参照型 'TestSolution.Test.Entities.Documents.Document, TestSolution.Test.名前空間 'http://schemas.datacontract.org/2004/07/TestSolution.Test.Entities.Documents' のデータ コントラクト名 'Document' を持つ Entities、Version=1.1.78.7965、Culture=neutral、PublicKeyToken=7ad0fddf5c57b9b3' は使用できません。インポートされた DataContract と一致しないため使用されます。参照される型からこの型を除外する必要があります。
エラー ソースへの XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IDocumentService'] c:\TFS1\TestSolution - Test\Test\Test。 Core\Service References\DocumentService\Reference.svcmap 1 1 Test.Core 警告 2 カスタム ツールの警告: wsdl:binding をインポートできません 詳細: wsdl:binding が依存している wsdl:portType のインポート中にエラーが発生しました。
wsdl:portType への XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='IDocumentService'] エラー ソースへの XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/']/wsdl:binding[@name='NetTcpEndpoint'] c:\TFS1\TestSolution - Test\Test\Test.Core\Service References\DocumentService\Reference.svcmap 1 1 Test.Core 警告 3 カスタム ツールの警告: wsdl:port をインポートできません
詳細: wsdl:port が依存している wsdl:binding のインポート中にエラーが発生しました。wsdl:binding への XPath: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='NetTcpEndpoint'] エラー ソースへの XPath: //wsdl:definitions[@ targetNamespace='http://tempuri.org/']/wsdl:service[@name='DocumentService']/wsdl:port[@name='NetTcpEndpoint'] c:\TFS1\TestSolution - Test\Test\Test。 Core\Service References\DocumentService\Reference.svcmap 1 1 Test.Core エラー 4 カスタム ツール エラー: サービス参照 'DocumentService' のコードを生成できませんでした。詳細については、その他のエラーおよび警告メッセージを確認してください。c:\TFS1\TestSolution - Test\Test\Test.Core\Service References\DocumentService\Reference.svcmap 1 1 Test.Core