GetData(value)
を含むService1.svc
のWCFサービスがあるとします。WCFと下位互換性のあるWeb APIを変換する
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
}
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
}
私もすでにこのサービスは、このような何かを消費するために、プロキシ自動生成するクライアントがあります。今
using (var client = new ServiceReference1.Service1Client())
{
var result = client.GetData(1);
//Assert.AreEqual("You entered: 1", result);
}
を、私はそのWCFサービスを削除し、新しいWeb APIに置き換えサービス、このような何か:
[RoutePrefix("Service1.svc")]
public class DataController : ApiController
{
[HttpGet]
[Route("GetData")]
public string GetDataOld(int value)
{
return string.Format("You entered: {0}", value);
}
}
私はクライアントService1Client()
を使用しようとするので、それはもう動作しません。私はこれが可能だと確信していますが、私はこの目標を達成するために何をしなければなりませんか?
アップデート2016年5月23日
これは不可能ですので、私はクライアント(s)は簡単に新しいRESTfulなWeb APIを実装することができるようにプロキシを作成することを決めました。
すべては使用されているバインディングによって異なります。それがWebHttpBindingの場合、トランスポートはRESTでした。そうでない場合は、クライアントを再実装するか、翻訳プロキシを導入する必要があります。これは簡単なことではありません。 – CodeCaster