Microsoft Management Management Provider DI ошибка в коде VS [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Microsoft Management Management Provider DI ошибка в коде VS [закрыто]

Сообщение Anonymous »

У меня есть следующий код в моей программе.builder.Services.AddScoped
В Visual Studio это компилируется и позволяет мне использовать моего пользовательского поставщика для управления моими функциями, как и предполагаемые. < /p>
if (await _featureManager.IsEnabledAsync("Somefeature", new IdFilterContext(id)))...
< /code>
Это также работает нормально, развернуто для AWS. < /p>
Всякий раз, когда мои коллеги, которые используют код VS или гонщик на Mac, пытаются скомпилировать, они получают следующую ошибку: < /p>
System.InvalidOperationException: Cannot resolve scoped service 'Microsoft.FeatureManagement.IFeatureDefinitionProvider' from root provider.
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator.ValidateResolution(ServiceCallSite callSite, IServiceScope scope, IServiceScope rootScope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.OnResolve(ServiceCallSite callSite, IServiceScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.FeatureManagement.ServiceCollectionExtensions.c.b__0_1(IServiceProvider sp)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.Dependen
< /code>
Любая подсказка о том, почему есть разница? И возможное решение? < /P>
Вот пример: < /p>
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.FeatureManagement;

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

// Setup DI
var services = new ServiceCollection();
services.AddScoped().AddFeatureManagement();

var serviceProvider = services.BuildServiceProvider();

// Get the service
var featureService = serviceProvider.GetRequiredService();

var featureIsEnabled = await featureService.IsEnabledAsync("test");

Console.WriteLine($"Feature is enabled: {featureIsEnabled}");

internal class DatabaseFeatureProvider : IFeatureDefinitionProvider
{
public async Task GetFeatureDefinitionAsync(string featureName)
{
return new FeatureDefinition
{
Name = "test",
EnabledFor = true
? new[] { new FeatureFilterConfiguration { Name = "AlwaysOn" } }
: Array.Empty()
};
}

public async IAsyncEnumerable GetAllFeatureDefinitionsAsync()
{
var parameters = new ConfigurationBuilder().AddInMemoryCollection().Build();
yield return GetFeatureDefinition("test", true, "filter", parameters);
}

private FeatureDefinition GetFeatureDefinition(string featureName, bool isEnabled, string filterName, IConfiguration parameters)
{
var featureDefinition = new FeatureDefinition
{
Name = featureName
};

if (isEnabled)
{
featureDefinition.EnabledFor = new[]
{
new FeatureFilterConfiguration
{
Name = filterName,
Parameters = parameters
}
};
}

return featureDefinition;
}
}
< /code>
Project: < /p>


Exe
net9.0
enable
enable









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

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

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

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

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

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