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

提供: Hideki Saito Wiki Japanese
移動先: 案内検索
(ページの作成:「==StreamReader等のシグネチャの違い== .NET Frameworkでは以下のように<tt>[https://msdn.microsoft.com/en-us/library/system.io.streamreader StreamReader]</t...」)
 
11行目: 11行目:
 
var sr = new StreamReader(new FileStream("file.txt", FileMode.Open));
 
var sr = new StreamReader(new FileStream("file.txt", FileMode.Open));
 
</pre>
 
</pre>
 +
 +
==log4netの使い方==
 +
通常、log4netを使用する場合、<tt>AssemblyInfo.cs</tt>やアプリケーションの<tt>.config</tt>ファイルに設定等を含める必要がある。しかし、<tt>log4net</tt>は.NET Coreには含まれないため、別の方法を使用する必要がある。
 +
 +
具体的には……。
 +
 +
<pre>
 +
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"]);
 +
</pre>
 +
 +
この方法は.NET Frameworkでも使用できるので、共通にコードを使用する必要がある場合は上記の方法を使用するのが楽。
  
 
[[Category:技術]]
 
[[Category:技術]]
 
[[Category:.NET]]
 
[[Category:.NET]]
 
[[Category:.NET Core]]
 
[[Category:.NET Core]]

2017年4月23日 (日) 23:33時点における版

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ファイルに設定等を含める必要がある。しかし、log4netは.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でも使用できるので、共通にコードを使用する必要がある場合は上記の方法を使用するのが楽。