Я пытаюсь создать свое первое приложение 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