我們有以下實現IProduct & ILogger類。經理類正被用作通信渠道。我們用團結下面給出的解決經理類,但它給下面的錯誤 -c#DI Unity容器如何解決依賴對象
===================unity configuration==========
IUnityContainer container = new UnityContainer();
container.RegisterType<ILogger, FileLogger>("File");
container.RegisterType<ILogger, BDLogger>("DB");
container.RegisterType<IProduct, ProductA>("productA");
container.RegisterType<IProduct, ProductB>("productB");
container.RegisterType<ProducManager>(new InjectionConstructor(container.Resolve<IProduct>("productA")));
container.Resolve<ProducManager>("productA");
========================================================
「的依賴解析失敗,類型= \」 usingDI.IProduct \「 名= \」產品A \ 「。\ r \ n發生異常時: 正在解析中。\ r \ n異常是:InvalidOperationException - 當前使用DI.ILogger的 類型是一個接口,無法構造 您缺少類型 映射?\ r \ ñ----------------------------------------------- \ r \ n在例外情況的 時間,容器是:\ r \ n \ r \ n解決 us INDI.ProductA,productA(使用DI.IProduct,productA映射)\ r \ n 使用DI.ProductA(使用DI.ILogger記錄器)解析構造函數 的參數「記錄器」\ r \ n使用DI.ILogger解析 )\ r \ n「}」
請建議我最好的方式來解決經理類的依賴關係。
public interface IProduct
{
void dosomething();
}
public class ProducManager
{
IProduct _product;
public ProducManager(IProduct product)
{
_product = product;
}
public void DoSomething()
{
_product.dosomething();
}
}
public class ProductA : IProduct
{
ILogger _logger;
public ProductA(ILogger logger)
{
_logger = logger;
}
public void dosomething()
{
try
{
//code
//
}
catch (Exception ex)
{
_logger.WriteLog(ex.Message);
}
}
}
public class ProductB : IProduct
{
ILogger _logger;
public ProductB(ILogger logger)
{
_logger = logger;
}
public void dosomething()
{
try
{
//code
//
}
catch (Exception ex)
{
_logger.WriteLog(ex.Message);
}
}
}
public class LogManager
{
ILogger _logger;
public LogManager(ILogger logger)
{
_logger = logger;
}
public void WriteLog(string exception)
{
_logger.WriteLog(exception);
}
}
public interface ILogger
{
void WriteLog(string exception);
}
public class FileLogger : ILogger
{
public void WriteLog(string exception)
{
}
}
public class BDLogger : ILogger
{
public void WriteLog(string exception)
{
}
}
ADDED UNITY CONFIGURATION。 –