私は持っている
Public Class AuthorBLL : IAuthorBLL
{
Public Add_Author();
Public Get_AuthorsList();
}
Public Class BookBLL : IBookBLL
{
Public Add_Book();
Public Get_BookList();
}
ここで、WCF レイヤーでビジネス ロジック レイヤー メソッドを呼び出し、同様の WCF OperationContracts メソッドを UI に公開したいと考えています。
私の WCF クラスは次のようになります。
Public class WCFService : IWCFService
{
private IAuthorBLL _authorBLL;
private IBookBLL _BookBLL;
public WCFService(IAuthorBLL authorBll, IBookBLL bookBll)
{
_authorBLL = authorBll;
_bookBll = bookBll;
}
Public WCF_Add_Author (serializable_author author);
{
_authorBLL.Add_Author();
}
Public WCF_Get_AuthorsList()
{
_authorBLL.Get_AuthorList();
}
Public WCF_Add_Book (serializable_book book);
{
_bookBll.Add_Book();
}
Public WCF_Get_BookList()
{
_bookBll.Get_BookList();
}
}
質問:
私の質問は、DIを実現するために、これらすべてのビジネスロジックレイヤーオブジェクトをコンストラクターパラメーターとして渡す必要があるWCFコンストラクターに関するものです。将来、publisherBLL、VentorBLL、CustomerBLL などがある場合、WCF コンストラクターでそれらすべてを渡す必要がないように、どのように汎用化できますか?
それが依存性注入の仕組みであることは知っていますが、50 個の BLL オブジェクトがある場合はどうでしょうか。それらすべてを WCF コンストラクターで渡す必要がありますか。それを回避する方法はありますか?これに対するより良い解決策を提供できる設計パターンまたは手法。
著者、書籍、出版社、クライアント、顧客、小売業者など、すべてのメソッドを公開できる 1 つの WCF サービスを維持する必要があります。1 つのサービスですべての CRUD メソッドを公開する必要があります。
編集:あなたが言っているように、DIを定義するコンテナを作成できるIOCにNinjetまたはCastleWinsorを使用してください。ただし、WCFクラスのWCFコンストラクターでコンストラクターベースのパラメーターを定義する必要があります。
以下のようにコンストラクターのパラメーターを定義する必要がありますか。または、WCF が大きすぎて非常に多くのメソッドを公開できない場合、著者、本、従業員 (店舗で働く)、出版社、人事、および給与モジュールに対して CRUD を実行する必要があるアプリケーションのソリューションは何でしょうか。すべてのモジュールには Web ページがあり、CRUD を実行するための WCF サービスを呼び出します。いつモバイル インターフェイスに移行する必要があるか、または同じメソッドを使用する他のアプリケーションがいくつあるかわからないため、WCF サービスを介してすべてを公開したいと考えています。私は何をすべきか?
private IAuthorBLL _authorBLL;
private IBookBLL _BookBLL;
private IClientBll _ClientBll;
private IPublisherBll _PublisherBll;
private IHRBll _HRBll;
private IEmployeeBll _employeeBll;
public WCFService(IAuthorBLL authorBll, IBookBLL bookBll, IClientBll clientBll, IPublisherBll publisherBll, IEmployeeBll employeeBll, IHRBll HRBll) { _authorBLL = authorBll; _bookBll = bookBll;
_authorBLL = authorBll; _ClientBll = clientBll; _PublisherBLL = publisherBll; _HRBll = HrBll; _EmployeeBLL = EmployeeBll;
}
従業員、著者、クライアント、書籍、出版社に対応するためのフロント エンド ページが非常に多いためです。私は何をすべきか。