Blazor — метод запуска в program.cs выдает сообщение «Произошла необработанная ошибка»C#

Место общения программистов C#
Ответить
Anonymous
 Blazor — метод запуска в program.cs выдает сообщение «Произошла необработанная ошибка»

Сообщение Anonymous »

Я пытаюсь создать свое первое приложение Blazor для личных целей и пытаюсь получить сообщение «Произошла необработанная ошибка» внизу страницы.
Я использую VS 2022 и шаблон автономного приложения Blazor WebAssembly.
Вот что вызывает появление этой ошибки, но я не знаю почему.
В Program.cs я хочу создать объект, который я добавлю как синглтон чтобы позже внедрить его на страницы, которым необходим доступ к этому объекту.
Приведенный ниже код работает хорошо:

public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);

builder.RootComponents.Add("#app");
builder.RootComponents.Add("head::after");

builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

List
Portfel = [];
builder.Services.AddSingleton(Portfel);

await builder.Build().RunAsync();
}


В моем классе Portfolio есть конструктор, который вызывает некоторые методы для получения данных во время построения. Этот класс работает, когда я тестирую консольное приложение или использую его как фрагмент кода в компоненте Razor. Но чтобы это работало в Program.cs, мне нужно закомментировать некоторые элементы конструктора, как вы можете видеть ниже:
public class Portfolio
{
public string ID { get; private set; }
public string Name { get; private set; }
public decimal Value { get; private set; }
public decimal ValueBankDeposits { get; private set; }
public decimal ValueStocks { get; private set; }
public decimal ValueETFs { get; private set; }
public decimal ValueFunds { get; private set; }
public decimal ValueBondsCorp { get; private set; }
public decimal ValueBondsTreasury { get; private set; }

public List BankDeposits { get; private set; }
public List Stocks { get; private set; }
public List ETFs { get; private set; }
public List Funds { get; private set; }
public List BondsCorp { get; private set; }
public List BondsTreasury { get; private set; }

public Portfolio(string iD, string name)
{
Name = name;
ID = iD;
//BankDeposits = DB.GetPortfolioBankDepositData(ID);
//Stocks = DB.GetPortfolioEquityData(ID);
//ETFs = DB.GetPortfolioETFData(ID);
//Funds = DB.GetPortfolioFundData(ID);
//BondsCorp=DB.GetPortfolioCorpBondData(ID);
//BondsTreasury=DB.GetPortfolioTreasuryBondData(ID);

}
}

Поэтому всякий раз, когда я пытаюсь создать этот класс с данными, а весь код в конструкторе раскомментирован, я получаю упомянутое сообщение об ошибке и не могу понять, почему. Как я уже говорил ранее, код работает как консольное приложение и как фрагмент кода в компоненте Razor, но не в Program.cs
List Portfel = [];
Portfolio a = new("01", "Test");


Подробнее здесь: https://stackoverflow.com/questions/798 ... or-occured
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»