【发布时间】:2011-06-01 06:19:57
【问题描述】:
我使用一种方法来处理异常 - 它在内部写入数据库,但是当发布到网络时,源代码将不包含写入数据库所需的连接字符串。相反,它应该写入日志文件。
是否可以在 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
}
}
我曾考虑让两个日志类实现共享接口(而不是扩展和覆盖)并创建一些工厂方法来呈现它,但不确定如何验证程序集的存在或在不添加引用的情况下使用它的类型,在这种情况下,最终项目将具有循环引用。
【问题讨论】:
标签: c# reflection partial class-extensions