asp.net クライアントがビジネス プロジェクトの dll を使用してビジネスを使用する既存の Web アプリケーションがあります。ビジネス プロジェクトのコードを以下に示します。
次に、それを WCF Web サービスとして作成する必要があります。既存のクラス BankAccountService からサービス インターフェイス (コントラクト) を作成する必要があります。しかし、クラスにはオーバーロードされたコンストラクターがあります。このコンストラクターは、サービス インターフェイスで定義できません (Web サービスはオブジェクト指向ではないため)。ここで Web サービスとして機能させるために使用できる最適なソリューションは何ですか?
サービス実装として BankAccountService を作成するのではなく、何らかのファサードを作成する必要がありますか?
注: サービスの実装後にインターフェイスを抽出するのは適切ではないことを理解しています。しかし、この特別なシナリオでは、これを行う必要があります。
注: これは非常に単純なアプリケーションであり、アプリケーションで必要な機能はこれだけです。Web サイトは、サービスを使用する唯一のクライアントになります。
参照:
コード
namespace ApplicationServiceForBank
{
public class BankAccountService
{
RepositoryLayer.IRepository<RepositoryLayer.BankAccount> accountRepository;
ApplicationServiceForBank.IBankAccountFactory bankFactory;
public BankAccountService(RepositoryLayer.IRepository<RepositoryLayer.BankAccount> repo, IBankAccountFactory bankFact)
{
accountRepository = repo;
bankFactory = bankFact;
}
public void FreezeAllAccountsForUser(int userId)
{
IEnumerable<RepositoryLayer.BankAccount> accountsForUser = accountRepository.FindAll(p => p.BankUser.UserID == userId);
foreach (RepositoryLayer.BankAccount repositroyAccount in accountsForUser)
{
DomainObjectsForBank.IBankAccount acc = null;
acc = bankFactory.CreateAccount(repositroyAccount);
if (acc != null)
{
acc.BankAccountID = repositroyAccount.BankAccountID;
acc.accountRepository = this.accountRepository;
acc.FreezeAccount();
}
}
}
}