Ошибки сохраняются при восстановлении фиксированного .NET 9.0 Blazor Web App (но не в инкогнито)C#

Место общения программистов C#
Ответить
Anonymous
 Ошибки сохраняются при восстановлении фиксированного .NET 9.0 Blazor Web App (но не в инкогнито)

Сообщение Anonymous »

Я загрузил шаблон веб -приложения Blazor в Visual Studio, и я использую .net 9.0. Я проводил некоторые эксперименты с инъекцией зависимости, чтобы попытаться получить хорошее представление о том, как это работало в Blazor. Когда я попытался просматривать свои шаги, исходный код больше не работал (за исключением режима инкогнито). Я сделал точку «очистки» моего решения до строительства, если предположить, что возникал какой-то видный артефакт, вызывая проблемы, но проблема сохранялась. Но я могу дать немного фона. По сути, я создал Icounterservice для использования с помощью Paster Counter (в проекте webclient.app шаблонного решения). Я создал реализацию «переменной» той, которая принимает целое число в конструкторе, а затем версию SingleStep , которая наследует реализацию переменной, но с значением 1.
Проницательная страница использует сервис, чтобы увеличить это значение.

Код: Выделить всё

@page "/counter"

@rendermode InteractiveWebAssembly

@inject ICountService CountService

Counter

Counter

Current count: @currentCount

Click me

@code {
private int currentCount = 0;

private void IncrementCount()
{
Console.WriteLine("Incrementing counter with count service...");
currentCount = currentCount + CountService.GetStep();
}
}
< /code>
Counter Service "My Degency" Components: < /p>
public interface ICountService
{
int GetStep();
}

public class VariableCountService : ICountService
{
protected int StepSize { get; set; }

public VariableCountService(int stepSize)
{
StepSize = stepSize;
}

public int GetStep()
{
return StepSize;
}

public override string ToString()
{
return $"Variable Counter [{StepSize}]";
}
}

public class SingleStepCountService : VariableCountService
{
public SingleStepCountService()
: base(1)
{ }

public override string ToString()
{
return $"Single Step Counter";
}
}
Это моя программа. public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents()
.AddInteractiveWebAssemblyComponents();

// This WORKS
builder.Services.AddScoped();

// This does NOT
// builder.Services.AddSingleton(new VariableCountService(2));

// This does NOT
//var counter = new VariableCountService(2);
//builder.Services.AddSingleton(counter);

// This does NOT
//var counter = new VariableCountService(2);
//builder.Services.AddSingleton((x) => { return counter; });

var app = builder.Build();

// SNIP

app.Run();
}
}
}
< /code>
Код от зеленой стрелки сработал. Я сделал инкрементные шаги, которые не (желтый), но когда я откатился назад, оригинал больше не работал (кроме инкогнито)


Подробнее здесь: https://stackoverflow.com/questions/797 ... in-incogni
Ответить

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

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

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

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

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