65459


3つのプロジェクトがあります。

・.NET Framework (4.7.2)  
・.NET Standard(xamarin.Form) (2.0) →Android 9.0  
・.NET Standard (2.0)  
->両方(.NET Framework・.NET標準クラスライブラリ(2.0)(xamarin.Form))のプロジェクトで参照されている。共通処理

・.NET Framework,.NET Standard(xamarin.Form)
に（App.config）を配置しConfigurationクラスを使用して設定を取得しようとしましたが、  
.NET標準クラスライブラリ（2.0）(xamarin.Form)でConfiguration System failed to
initializeエラーが発生し、  
設定を読み取ることができず、まずこの方法が正しいかどうか分からなくなりました。

3つのプロジェクトで同じ設定を読み取るためにはどうようにするのがベストプラクティスなのでしょうか。  
教えていただきたいです。お願いします。


CC BY-SA 4.0
2020-04-08T02:47:22.540
65458
2020-04-08T22:59:23.307
2020-04-08T04:05:18.383
39542
39542
question
c# .net xamarin
.NET Framework、.NET Standard(共通処理。両方から参照)、.NET Standard(xamarin.Form)プロジェクト間で同じ構成(設定)を使用するにはどうすればよいですか？


この記事の質問に付いたコメントが当てはまるのでは？  
つまりConfigurationManager/Configurationは.NET
Standardの一部では無いので、共通化を目指すのならば使ってはいけないということでしょう。

[Is ConfigurationManager.AppSettings available in .NET Core
2.0?](https://stackoverflow.com/q/47591910/9014308)

> RE: It compiles fine when targeting .NET Standard 2.0 only - this cannot be
> correct, because ConfigurationManager is not part of .NET Standard (so far
> this is true up to v.2.1).
>
> RE:.NET Standard 2.0のみをターゲットにした場合は正常にコンパイルされます。 -
> これは正しくありません。なぜなら、ConfigurationManager は .NET Standard
> の一部ではないからです(これまでのところ、これはv.2.1まで当てはまります)

* * *

実際、以下のページの「適用対象」欄に.NET Standardの項目はありません。

[ConfigurationManager クラス](https://docs.microsoft.com/ja-
jp/dotnet/api/system.configuration.configurationmanager?view=netframework-4.8)  
[Configuration クラス](https://docs.microsoft.com/ja-
jp/dotnet/api/system.configuration.configuration?view=netframework-4.8)  
[Configuration.AppSettings プロパティ](https://docs.microsoft.com/ja-
jp/dotnet/api/system.configuration.configuration.appsettings?view=netframework-4.8)

例えばこちらなら.NET Standardの2.1 2.0 1.6 1.4 1.3が記述されています。

[Console クラス](https://docs.microsoft.com/ja-
jp/dotnet/api/system.console?view=netframework-4.8)

* * *

検索するとこんな記事があります、ただしチョコチョコ問題もある(あった？)ようです。  
こうしたライブラリを探して使用するか、自前で設定ファイルと管理＆読み書きクラスを用意するとかではないでしょうか？

[Xamarin.Forms
Xamlプロジェクトのapp.configファイルを読む](https://riptutorial.com/ja/xamarin-
forms/example/20757/)

> 各モバイルプラットフォームは独自の設定管理APIを提供していますが、古い古い.netスタイルのapp.config
> XMLファイルから設定を読み込む方法はありません。これは正当な理由の束、特に.netフレームワーク構成管理apiがヘビー級側にあり、各プラットフォームが独自のファイルシステムapiを持つためです。
>
> そこで、簡単なPCLAppConfigライブラリを作成しました。素早くすぐに使用できるようにパッケージ化されています。

[AppSettings Reader for Xamarin and
Xamarin.Forms](https://forums.xamarin.com/discussion/73623/)

* * *

ちなみに当分のあいだ役に立たないですが、うたい文句どおりなら .NET 5
になればConfigurationManager/Configurationも使えるかもしれません。上記API仕様ページに .NET Core 3.0
3.1ではサポートしていると書いてあるので。  
[再統合された .NET:.NET 5 に関する Microsoft の計画](https://docs.microsoft.com/ja-
jp/archive/msdn-magazine/2019/july/csharp-net-reunified-
microsoft%E2%80%99s-plans-for-net-5)  
[Announcing .NET 5 Preview
1](https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/)


CC BY-SA 4.0
2020-04-08T04:05:06.840
65459
2020-04-08T22:59:23.307
2020-06-17T08:14:45.997
-1
26370
65458
answer