「.NET Frameworkと.NET Coreの差異」の版間の差分

提供: Hideki Saito Wiki Japanese
移動先: 案内検索
(log4netの使い方)
 
16行目: 16行目:
  
 
==log4netの使い方==
 
==log4netの使い方==
通常、log4netを使用する場合、<tt>AssemblyInfo.cs</tt>やアプリケーションの<tt>.config</tt>ファイルに設定等を含める必要がある。しかし、<tt>log4net</tt>は.NET Coreには含まれないため、別の方法を使用する必要がある。
+
通常、log4netを使用する場合、<tt>AssemblyInfo.cs</tt>やアプリケーションの<tt>.config</tt>ファイルに設定等を含める必要がある。しかし、<tt>AssemblyInfo.cs</tt>は.NET Coreには含まれないため、別の方法を使用する必要がある。
  
 
具体的には……。
 
具体的には……。

2017年4月24日 (月) 22:32時点における最新版

以下はプログラミング上での.NET Framework.NET Coreの違いをまとめたもの。

StreamReader等のシグネチャの違い

.NET Frameworkでは以下のようにStreamReaderにファイル名を渡せる。

var sr = new StreamReader("file.txt");

ところが、.NET CoreにおいてはStreamReaderのコンストラクタにstringがないため、この方法は使えない。そのため、以下のようにする必要がある。

var sr = new StreamReader(new FileStream("file.txt", FileMode.Open));

log4netの使い方

通常、log4netを使用する場合、AssemblyInfo.csやアプリケーションの.configファイルに設定等を含める必要がある。しかし、AssemblyInfo.csは.NET Coreには含まれないため、別の方法を使用する必要がある。

具体的には……。

XmlDocument log4netConfig = new XmlDocument();

using (StreamReader reader = new StreamReader(new FileStream("log4net.config", FileMode.Open, FileAccess.Read)))
{
    log4netConfig.Load(reader);
}

ILoggerRepository rep = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy));
XmlConfigurator.Configure(rep, log4netConfig["log4net"]);

この方法は.NET Frameworkでも使用できるので、共通にコードを使用する必要がある場合は上記の方法を使用するのが楽。