複数のプロジェクトを持つ大きな MVC ソリューションがあります。WCF サービスを使用して別のソリューションを作成し、リソースを大量に消費するプロジェクトをいくつか移動することを計画しています。考えられるのは、MVC アプリケーションは、あらゆる計算要件について WCF と通信するということです。
問題は、サービスへのインターフェースを既に持っている既存のクラスとインターフェースを呼び出す方法がわからないことです。私のクラス/インターフェース:
public interface IHelloWorld
{
string SayHello(string name);
}
public class HelloWorld : IHelloWorld
{
public string SayHello(string name)
{
return string.Format("Hello, {0}", name);
}
}
クラスには何百ものメソッドがあります。すべてが WCF に公開されるわけではなく、そのうちのいくつかだけです。
ここで、新しく作成した WCF サービスでこのクラスを呼び出す必要があります。私はわかりません:
- 既存のクラスを変更して svc.cs (サービス) に変換する必要がありますか?それとも、別のサービス ファイルを作成してそこで既存のメソッドを呼び出すことができますか?
- サービス クラスには、web.config (エンドポイント コントラクト) で定義されるインターフェイスも必要です。公開する必要があるメソッドのみを含む別のインターフェイスを作成する必要がありますか、それともクラス ライブラリの既存のインターフェイスを使用する必要がありますか? クラス インターフェイスを使用する場合は、web.config で同じことを言及する必要があります。
私はそれを行うための最良の方法は何なのか少し混乱しています。既存のクラスを変更したくありませんが、接続してそこから呼び出すことができる新しいサービスを追加したいと考えています。新しい svc.cs ファイルは次のとおりです。
[ServiceContract]
public interface IHelloWorldService
{
[OperationContract]
string SayHello(string name);
}
public class HelloWorldService : IHelloWorldService
{
private IHelloWorld helloWorld = new HelloWorld();
public string SayHello(string name)
{
return helloWorld.SayHello(name);
}
}
この現在の設計は、既存のクラス/インターフェースを繰り返しているようです。これが正しい方法かどうかはわかりません。助けてください。