3

NuGet で ServiceStack の最新バージョンを使用しています。JsonServiceClient で正常に動作する基本的なサービス セットアップがあり、期待どおりにすべての単体テストに合格しています。

残念ながら、SOAP と Visual Studio の "Add Service Reference" プロキシ生成をサポートして、そのようなフレームワークを引き続き使用したい他のグループとの相互運用を試みています。

私が遭遇しているのは、Response オブジェクトを含む DTO が、ServiceStack がメタデータ ページを介して生成している XSD または wsdl に入力されていないことです。これは、個々の SOAP 操作の例を表示すると、生成された例に正しい応答と DTO が表示されるという事実と相まって、非常に奇妙に思えます。

応答例:

Namespace Operations
    <DataContract>
    Public Class GetItemResponse
        Implements IHasResponseStatus

        <DataMember>
        Public Property ResponseStatus As ResponseStatus Implements IHasResponseStatus.ResponseStatus

        <DataMember>
        Public Property Item As Item
    End Class
End Namespace

DTO の例:

Namespace Types
    <DataContract>
    Public Class Item
        <DataMember>
        Public Property ItemIdentifier As String
        <DataMember>
        Public Property ItemId As Guid?
        <DataMember>
        Public Property ItemName As String
        <DataMember>
        Public Property Description As String
        <DataMember>
        Public Property InstallDate As DateTime?
        <DataMember>
        Public Property FeatureNumber As String
        <DataMember>
        Public Property ModelNumber As String
    End Class
End Namespace

Assembly: ContractNamespace 属性を使用して、XML 名前空間も設定しています。

4

1 に答える 1

0

ソースコードをダウンロードして、自分で調査しました。この変更が最近のものかどうかはわかりませんが、DTO と Response オブジェクトを wsdl に含めるには、「?includeAllTypes=true」のようなクエリ文字列を追加する必要があるようです。

また、AssignRoles と UnAssignRoles を Service に自動的に追加する ServiceStack BasicAuthProvider セットアップも使用しています。これらの呼び出しの要求および応答オブジェクトは、まだ wsdl に入れられず、「サービス参照の追加」が失敗します。幸いなことに、それらを使用していないため、それらを削除する別の構成設定を見つけることができれば、すべて正しく機能するはずです。

于 2012-11-28T21:13:30.337 に答える