1

私は持っている

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;

    }   

従業員、著者、クライアント、書籍、出版社に対応するためのフロント エンド ページが非常に多いためです。私は何をすべきか。

4

1 に答える 1