我正在构建一组需要在Silverlight和WPF上工作的程序集。到目前为止,我一直在使用log4net来处理日志记录。虽然它与Silverlight不兼容,所以现在我面临着将其剥离的前景,我不想这样做。
我的问题是这个。假设我将程序集重新创建为Silverlight程序集,我可以使用#ifdef或类似程序包装日志记录调用。但是,有没有办法“有条件地”引用log4net dll?我不愿意放弃log4net,而不是每个项目都有两个版本。
任何帮助都将不胜感激。
答案 0 :(得分:0)
对于我的公共代码类,我使用add as link选项将它们添加到Silverlight项目中。我确实使用了一些ifdef,但如果可能的话,尽量让它们保持一致。对于像log4net这样的东西,我为Silverlight程序集创建了一个“shell”接口。下面是我目前用于log4net的那个。
namespace log4net
{
public class ILog
{
public void Debug(string message)
{ }
public void Error(string message)
{ }
public void Info(string message)
{ }
public oid Warn(string message)
{ }
}
}