我想在我的MVC網絡應用程序中使用WCF。我已經實現了通道工廠來實例化代理客戶端。 我被困在一個點。下面是代碼的亮點 -使用Unity註冊WCF代理封裝器
我創建了一個代理基類,我在哪裏創造出聲道:
public abstract class ServiceProxyBase<T> : IDisposable where T : class
爲了創建德代理包裝類,我繼承了這個基類:
public class ProxyWrapper : ServiceProxyBase<IMyService>,IMyService
這裏「IMyService」是WCf合同。
現在,在控制器我已經加入重載構造爲:
public class AccountController : Controller
{
private IMyService businessService;
public AccountController(IMyService _businessService)
{
this.businessService = _businessService;
}
}
用於注入依賴性我已經包括unity.mvc4包。
它正常工作時,我用下面的代碼:
container.RegisterType<IMyService, ProxyWrapper>();
這工作只要ProxyWrapper直接繼承IMyService接口。如果我刪除繼承
public class ProxyWrapper : ServiceProxyBase<IMyService>
它註冊類型時會給出錯誤。 我想有一個方法,而不會在代理封裝器中禁止合約。我花了將近一天的時間來解決這個問題。但我們能夠找出解決方案。
請給出您的寶貴意見。
所以你想註冊'ProxyWrapper'作爲'IMyService',但不讓'ProxyWrapper'實現'IMyService'?你想用這個解決什麼問題? – Steven 2014-11-25 10:11:00
是的,我想按照提及的方式來實現它。我沒有試圖解決任何問題。只是試圖以更清潔的方式實現它,這樣我就不必在包裝器中實現合同的所有方法。只有我需要的應該包括在內。 – Shikhar 2014-11-25 10:47:44
@Steven - 有沒有辦法做到這一點? – Shikhar 2014-11-25 10:55:33