0

В ninject У меня есть такой код:C# Ninject для структурной карты преобразователь

var resourceManagers = new ResourceManager[1]; 
resourceManagers[0] = Validation.ResourceManager; 
kernel.Bind<ILocalizedStringProvider>().To<ResourceStringProvider>() 
    .WithConstructorArgument("resourceManager", resourceManagers); 

kernel.Rebind<ModelValidatorProvider>().To<LocalizedModelValidatorProvider>(); 

Я хочу, чтобы преобразовать это в StructureMap

Я сделал так:

IContainer container = new Container(); 
var ioC = new IoC(); 
ioC.Initialize(container); 

container.Configure(x => 
{ 

    var resourceManagers = new ResourceManager[1]; 
    resourceManagers[0] = ModelValidation.ResourceManager; 
    x.For<ILocalizedStringProvider>().Use<ResourceStringProvider>.Ctor<string>(@"resourceManager").Is(resourceManagers); 
    x.For<ModelValidatorProvider>().Add<LocalizedModelValidatorProvider>(); 
}); 

DependencyResolver.SetResolver(new StructureMapDependencyResolver(container)); 
GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container); 

, но я получаю исключение:

Se Истинность Код Описание проекта Строка файла Подавление Государственный CS0119 Error «CreatePluginFamilyExpression.Use()» это метод, который не действует в данном контексте

Как сделать это с StructureMap?

ответ

1

использования(), так как это метод

var resourceManagers = new ResourceManager[1]; 
resourceManagers[0] = ModelValidation.ResourceManager; 

x.For<ILocalizedStringProvider>().Use<ResourceStringProvider>().Ctor<ResourceManager[]> (@"resourceManager").Is(resourceManagers); 
x.For<ModelValidatorProvider>().Add<LocalizedModelValidatorProvider>(); 
1

Как сказано в сообщении об ошибке, это:

.Use<ResourceStringProvider>

Должно быть:

.Use<ResourceStringProvider>()

Поскольку это метод.

 Смежные вопросы

  • Нет связанных вопросов^_^