2009-08-28 3 views
0

я имею что-то вроде этогоwinsdor зарегистрировать общий тип с параметром конструктора

MyRepository<T> : IRepository<T> { 

    public MyRepository(string cs){ 
    .... 

}

поэтому необходимо зарегистрироваться в winsdor этого общего типа и дать ему параметр,

Я пытались сделать это следующим образом:

Type t = typeof(IRepository<>); 
Type t1 = typeof(Repository<>); 
Hashtable props = new Hashtable(); 
props.Add("cs", "myconnstring"); 
container.AddComponentWithProperties("key1", t, t1, props); 

, и я получаю следующее сообщение об ошибке

Невозможно создать компонент 'key1', поскольку он имеет удовлетворяющие зависимости. key1 ждет следующих зависимостей:

Ключи (компоненты со специальными ключами) - cs, которые не были зарегистрированы.

ответ

3

Попробуйте это:

container.Register(Component.For(typeof(IRepository<>)) 
    .ImplementedBy(typeof(MyRepository<>)) 
    .Parameters(Parameter.ForKey("cs").Eq("myconnstring")); 

Отъезд fluent registration wiki для получения дополнительной информации.

+0

thnx man он работал нормально, я просто положил значение cs внутри Eq (значение) – Omu

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