.NET Frameworkと.NET Coreの差異
以下はプログラミング上での.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でも使用できるので、共通にコードを使用する必要がある場合は上記の方法を使用するのが楽。