2016-12-28 9 views
1

私はappsettings.jsonファイルから設定オブジェクトの一部としてSystem.Typeをインポートしようとしています。細かい物の輸入の残りの部分が、私は私の設定にSystem.Typeプロパティを追加するとき、私は次の例外を取得オブジェクト:「System.InvalidOperationExceptionが」.netコアアプリケーションのappsettings.jsonファイルからSystem.Typeをインポートすることはできますか?

にタイプの例外がMicrosoft.Extensions.Configuration.Binderで発生しました。 dllがユーザーコードで処理されませんでした

追加情報: 'MyType'を 'System.Type'に変換できませんでした。

マイappsettings.jsonは次のようになります

public class Settings 
{ 
    public string Url {get; set;} 
    public Type Type {get; set;} 
} 

マイStartup.csが設定をバインドするために、これを使用して含まれています:

var foo = Configuration.GetSection("Settings").Get<Settings>(); // This is where the exception occurs. 
マイセッティングオブジェクトがどのように見える

"Settings": { 
    "Url": "some url", 
    "Type: "MyType" 
} 

構成バインダーは明らかに読み取り中ですMyTypeを文字列として使用し、System.Typeに変換する方法がわかりません。バインダーレベルでこれを行うことは可能ですか?それが使用されている時点でその文字列をSystem.Typeにするために何らかのリフレクションを行う必要がありますか?

+1

あなたが使用しようとしているコードを教えてください。 –

+0

@RobertColumbiaが追加されました。 – Necoras

+0

私はSystem.Typeでこれを行うことはできないと思います。タイプの代わりに別のオブジェクト(クラス)を使用することができます。 – Mehmet

答えて

0

これは現在サポートされていません。設定ライブラリdo not support JSON文書から型を取り込みます。

私はセカンダリ設定ファイルを追加し、その特定の設定オブジェクトをインポートするためにJson.NETを使用してこれを回避しました。

関連する問題