前提・実現したいこと
C#初心者のため、見当違いな質問でしたら申し訳ございません。
.Net Core Blazor Webassembly hostedで開発をしています。
以下のようにModelから一覧を取ってくる処理を共通化したいと考えています。
これを
public async Task<List<Product>> GetModels() { return await Http.GetFromJsonAsync<List<{Product}>>("api/Product"); }
こうしたい
public async Task<List<T>> GetModels(string modelName) { return await Http.GetFromJsonAsync<List<{modelName}>>("api/" + modelName); }
###全体コード
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Threading.Tasks; 5using System.Net.Http; 6using System.Net.Http.Json; 7 8namespace MyProject.Client.Service 9{ 10 public class MyAppService : IMyAppService 11 { 12 private static readonly HttpClient Http; 13 14 static MyAppService() 15 { 16 Http = new HttpClient(); 17 Http.BaseAddress = new Uri("https://localhost:44382/"); 18 } 19 public async Task<List<T>> GetModels(string modelName) 20 { 21 return await Http.GetFromJsonAsync<List<{modelName}>>("api/" + modelName); 22 } 23 24 25 } 26}
razor
1@code { 2 List<Product> products; 3 4 protected override async Task OnInitializedAsync(){ 5 products = await MyAppService.GetModels("Product"); 6 } 7}
エラー
CS0246 型または名前空間の名前 'T' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)。 CS0118 'modelName' は 変数 ですが、種類 のように使用されています。 CS0029 型 'System.Collections.Generic.List<modelName>' を 'System.Collections.Generic.List<T>' に暗黙的に変換できません。
お力を貸していただけると幸いです。よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/10/20 06:15
2020/10/20 06:19