はい、可能です。
public interface ILogger
{
void Write(string message);
// And much more methods.
}
今すぐ2つのインスタンスを作成し、ダミーのインスタンスは(DummyLogger
それを呼び出すことができます)、およびlog4netの(Log4NetLogger
)にそのメッセージを送信する場合:
まず、すべてのログ・メソッドとinterfaseを作成します。
終了するには、ファクトリクラスを作成します。
static public class LogFactory
{
static public ILogger CreateLogger()
{
if (/*Check if Log4Net is available*/)
return new Log4NetLogger();
else
return new DummyLogger();
}
}
log4netのは、ファイルがあなたのビンのフォルダにある場合、単純にチェックすることで利用可能かどうかをチェックできます。何かが好き:
File.Exists(AppDomain.CurrentDomain.BaseDirectory + "Log4Net.dll")
しかし、あなたがGACなどに存在するかのように、他のチェックをしたいと思うかもしれません。
ILogger logger = LoggerFactory.CreateLogger();
logger.Write("I am logging something!");
がプラグインしてください:
は、今すぐあなたのロガーを作成し、ログにメッセージを「書く」ためにあなたの工場を使用することができます。 [MEF](http://mef.codeplex.com/)を参照してください。 – Oded
300kb?それは何もない、それを運ぶ。 –
@SteveWellens何もない? exeファイルはわずか15kbで、インストールする必要はありません。 –