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

提供: Hideki Saito Wiki Japanese
移動先: 案内検索
(ページの作成:「==StreamReader等のシグネチャの違い== .NET Frameworkでは以下のように<tt>[https://msdn.microsoft.com/en-us/library/system.io.streamreader StreamReader]</t...」)
 
(log4netの使い方)
 
(同じ利用者による、間の3版が非表示)
1行目: 1行目:
 +
以下はプログラミング上での[[.NET Framework]]と[[.NET Core]]の違いをまとめたもの。
 +
 
==StreamReader等のシグネチャの違い==
 
==StreamReader等のシグネチャの違い==
 +
 
.NET Frameworkでは以下のように<tt>[https://msdn.microsoft.com/en-us/library/system.io.streamreader StreamReader]</tt>にファイル名を渡せる。
 
.NET Frameworkでは以下のように<tt>[https://msdn.microsoft.com/en-us/library/system.io.streamreader StreamReader]</tt>にファイル名を渡せる。
  
11行目: 14行目:
 
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>AssemblyInfo.cs</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]]
 +
{{DEFAULTSORT:.NET Frameworkと.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でも使用できるので、共通にコードを使用する必要がある場合は上記の方法を使用するのが楽。