2

Я написал мой CustomLifetimeManager так:Unity: передать параметры пользовательского пожизненной конструктора, в конфигурационном файле XML

public class CustomLifetimeManager <T> : LifetimeManager 
{ 
    private readonly string _arg; 

    public CustomLifetimeManager(string arg) 
    { 
     _arg = arg; 
    } 
} 

Теперь он работает легко настройки контейнера программно, но, как добавить его в файл конфигурации, как следующее ?

<type type="myTime" 
     mapTo="myImpl"> 
     <lifetime type="CustomLifetimeManager"/> 
</type> 
+0

Вы хотите прочитать конфигурацию? Если вы это сделаете, добавьте ключи со значениями и прочитайте их так: string configValue = System.Configuration.ConfigurationManager.type ["keyName"]; – MrFox

+0

Нет, я хочу просто позвонить: unityConfigurationSection.Containers [0]. Конфигурировать (контейнер) , чтобы настроить мой контейнер. Я хотел бы настроить менеджера жизненного цикла в файле конфигурации. – onof

ответ

0

Вам необходимо добавить второй класс: A TypeConverter. Этот класс отвечает за взятие строки и превращение ее в любой тип, который вы хотите. После того, как вы реализуете его, вы можете сделать что-то вроде этого в файле конфигурации:

<register type="MyType" mapTo"MyImpl"> 
    <lifetime typeConverter="CustomLifetimeManagerConverter" value="arg" /> 
</register> 

и оттуда он должен просто работать (при условии, конфигурации можно найти конвертер типа, как и любой другой тип).

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