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

提供: Hideki Saito Wiki Japanese
移動先: 案内検索
34行目: 34行目:
 
[[Category:.NET]]
 
[[Category:.NET]]
 
[[Category:.NET Core]]
 
[[Category:.NET Core]]
 +
{{DEFAULTSORT:.NET Frameworkと.NET Coreのさい}}

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

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でも使用できるので、共通にコードを使用する必要がある場合は上記の方法を使用するのが楽。