2016-05-23 21 views
2

の消費は、私は、.NETのコアRC2アプリ内で.NET 4.6のサービスを呼び出すために探しています。.NETコアRC2 - 外部WCF

私はMicrosoftが提供WCFテストクライアント内のサービスをテストして、それが正常に動作し、私は今私の.NET Coreアプリケーション内でそれを消費するが、それを行う方法に不明な点が午前したいと思います。

私はsvcutilを使用してサービス参照ファイルを生成しようとしましたが、これはCoreおよびSystem.Runtimeの名前空間に存在しないIExtensibleDataObjectを使用するため、実際には新しい.NETフレームワーク用に設計されていませんXml、Primitives、Jsonに分割されているように見える。

誰もが、私は単純に、外部(未私のプロジェクト内)WCFを消費することができる方法の例を持っています。

多くのおかげ

+0

サービス設定を共有できますか?私は、任意の例を発見していないが、WCFクライアントライブラリはnugetで利用可能であるべき – Enes

+0

。おそらく、実装https://github.com/dotnet/wcfからいくつかのテストケースを使用することができます。 – Thomas

答えて

4

は、Microsoftが"WCF Connected Service for .NET Core RC2 and ASP.NET Core RC2"をリリースしました。それは仕事をするべきです。

私は私のサービスのためのクライアントコードを生成するためにそれを使用して:それはDataContractクラスでこれらの属性を使用しています

  1. [System.Diagnostics.DebuggerStepThroughAttribute()] 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "0.2.0.0")] 
    [System.Runtime.Serialization.DataContractAttribute(Name="Person", Namespace="http://schemas.datacontract.org/2004/07/Mock")] 
    public partial class Person : object 
    
  2. それは、[System.Runtime.Serialization.DataMemberAttribute()]DataContractのプロパティ

  3. を使用していますこれは、サービス契約を定義するには、これらの属性を使用しています。

    [System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "0.2.0.0")] 
    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="Mock.IMockService")] 
    public interface IMockService 
    
  4. これは、契約インターフェース内のサンプルopertaion定義です:リクエストとレスポンスをマークするには

    [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IMockService/LookupPerson", ReplyAction="http://tempuri.org/IkMockService/LookupPersonResponse")] 
    System.Threading.Tasks.Task<Mock.LookupPersonResponse> LookupPersonAsync(Mock.LookupPersonRequest request); 
    
  5. それが使用するオブジェクト:

    リクエスト/レスポンスの
    [System.ServiceModel.MessageContractAttribute(WrapperName="LookupPerson", WrapperNamespace="http://tempuri.org/", IsWrapped=true)] 
    public partial class LookupPersonRequest 
    
  6. とプロパティ

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://tempuri.org/", Order=0)] 
    public CepikMock.PersonSearchCriteria criteria; 
    
  7. :と注釈されています
  8. 最後に、それは基本的なIClientChannelインタフェースに

  9. とクライアントクラス内ClientBase実装

    public partial class MockServiceClient : System.ServiceModel.ClientBase<Mock.IMockService>, Mock.IMockService 
    
  10. を生成し、各サービスのメソッドは次のように公開されています

    public System.Threading.Tasks.Task<Mock.LookupPersonResponse> LookupPersonAsync(Mock.LookupPersonRequest request) 
    { 
        return base.Channel.LookupPersonAsync(request); 
    } 
    
関連する問題