使用通用代码构建Silverlight和WPF应用程序的建议

使用通用代码构建Silverlight和WPF应用程序的建议,wpf,silverlight,assemblies,Wpf,Silverlight,Assemblies,我正在构建一组需要在Silverlight和WPF上工作的程序集。到目前为止,我一直在使用log4net来处理日志记录。但它与Silverlight不兼容,所以现在我面临着将其删除的前景,我不想这样做 我的问题是。假设我将程序集重新创建为Silverlight程序集,我可以包装(使用#ifdef或类似工具)日志调用。但是,是否有任何方法“有条件地”引用log4net dll?我不愿意放弃log4net,也不希望每个项目都有两个版本 任何帮助都将不胜感激。对于我的常见代码类,我使用add-as-l

我正在构建一组需要在Silverlight和WPF上工作的程序集。到目前为止,我一直在使用log4net来处理日志记录。但它与Silverlight不兼容,所以现在我面临着将其删除的前景,我不想这样做

我的问题是。假设我将程序集重新创建为Silverlight程序集,我可以包装(使用#ifdef或类似工具)日志调用。但是,是否有任何方法“有条件地”引用log4net dll?我不愿意放弃log4net,也不希望每个项目都有两个版本


任何帮助都将不胜感激。

对于我的常见代码类,我使用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)
        { }
    }
}