存在不同装配体时的部分/扩展类或接口
|
我使用一种方法来处理异常-在内部它会写入数据库,但是当发布到网络上时,源代码将不包含写入数据库所需的连接字符串。相反,它应该写入日志文件。
当不存在Foo.Private.dll时,是否可以容纳写入日志,而当存在Foo.Private.dll时,是否可以写入数据库?
//In Foo.Public.dll assembly
public class SimpleLogWriter
{
public virtual void LogError(Exception ex)
{
//Write to log file.
}
}
...
//In Foo.Private.dll assembly
public class ExtendedLogWriter : SimpleLogWriter
{
public override void LogError(Exception ex)
{
//Write to database
}
}
我曾考虑过让两个日志类实现一个共享的接口(而不是扩展和覆盖)并创建一些工厂方法来呈现它,但是不确定如何验证程序集的存在或使用其类型而不添加引用,在这种情况下最终项目将具有循环引用。
没有找到相关结果
已邀请:
4 个回复
亲奋漏
系漏
吐兄
,如果他们拥有Foo.Private.dll,则指定
。有各种IoC容器可以简化这一过程。
勘掸府迫路