質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

2回答

1480閲覧

VisualStudio2022でMicrosoft.Extensions.Configuration.IConfiguration が読み込めない

tb34_tyagama

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2022/05/23 05:54

編集2022/05/23 09:52

現象:Microsoft.Extensions.Configuration.IConfiguration が読み込めない

ソースコード:

C#

1using Microsoft.Extensions.Configuration; 2 3namespace Test 4{ 5 public static class ConfigurationTest{ 6 7 public static IConfigration conf { get; set; } 8 9 } 10}

エラー内容:
CS0246 型または名前空間の名前 'IConfiguration'が見つかりませんでした(using ディレクティブばたはアセンブリ参照が指定されていることを確認してください)

環境:
VisualStudio 2022
.NET 6.0
非ネット接続環境
ローカルフォルダにMicrosoft.Extensions.Configuration.6.0.0.nupkg以下依存関係の.nupkgファイルを配備
NuGetパッケージマネージャーのパッケージソースに上記ローカルフォルダを指定

その他:
ソースコードのエディタに
Microsoft.Extensions.Configuration.
まで打ち込んで出てくる予測の選択肢にBinderOptionsとConfigurationBinderの2つしか出てこない。
(本来以下のページのクラス・インターフェースが全てが出てくる想定
https://docs.microsoft.com/ja-jp/dotnet/api/microsoft.extensions.configuration?view=dotnet-plat-ext-6.0

質問:
上記現象の原因、IConfigurationを表示させるために何か設定が足りていないかどうか等。

よろしくお願いします。


追記
作成物:
クラスライブラリ
(ASP.NET Core Web アプリのほうで利用する予定)

やりたいこと:
appsettings.jsonから設定を読み込む。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/05/23 08:03

情報不足です。 何を作っているのか書いてください。ASP.NET Core なら Visual Studio 2022 のテンプレートを使ってプロジェクト作成すると、何もしなくても構成ファイルから情報を読み込んで IConfiguration オブジェクトが生成され、構成情報を取得できるようになりますけど? Windows Forms アプリとかですか? そもそも何がしたいのかを書いてください。ASP.NET Core アプリのように appsettings.json ファイルから IConfiguration オブジェクトを作って構成情報を取得したい?
tb34_tyagama

2022/05/23 09:02

作成しているのはクラスライブラリです。 それをASP.NET Core Web アプリのほうで利用する予定でいます。 やりたいことはappsettings.jsonから設定を読み込むことです。 NuGetパッケージマネージャでMicrosoft.Extensions.ConfigurationをインストールしてもIConfigrationが使えなくて困っています。 回答としてこれであってますでしょうか?
退会済みユーザー

退会済みユーザー

2022/05/23 09:12

質問欄を編集して追加情報として追記願います。ここは「質問への追記・修正の依頼」の場所ですので。
guest

回答2

0

NuGet から Microsoft.Extensions.Configuration.Json をインストールしてください。それで質問のエラーは解消されるはずです。

ただし、質問のコードでは、

クラスライブラリ
(ASP.NET Core Web アプリのほうで利用する予定)

やりたいこと:
appsettings.jsonから設定を読み込む。

・・・ということはできないと思います。

DI 機能を使って、クラスライブラリのコンストラクタ経由で IConfiguration オブジェクトを渡す必要があります。

そのためにはクラスライブラリのクラスは IConfiguration オブジェクトを引数として受け取るパブリックコンストラクタが必要です。インスタンスを生成するので static ではダメです。

また、クラスライブラリを使う ASP.NET Core アプリ側でクラスライブラリを利用できるように Program.cs にサービスとしての登録が必要です。

そして、クラスライブラリを使うコントローラー等では DI 機能によりクラスライブラリのオブジェクトを使えるようにフィールドとコンストラクタに手を加える必要があります。

そのあたりの質問があれば、別のスレッドを立ててどのようにしたいのかを詳しく書いて、質問してください。

投稿2022/05/23 10:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

別のPCでVisualStudioをいれるところから行ったら、IConfigrationを読み込むことができました。
元のPCでは相変わらずなので、どこかの設定に原因があるかと思いますが、解決とさせて頂きます。

ありがとうございました。

投稿2022/05/23 10:14

tb34_tyagama

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/05/23 10:29 編集

それは解決策とは言えないのでは? いろいろいじっているうちに何だか分からないうちにエラーが消えたのですよね。 回答したので見てください。回答の方法で解決できるはずです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問