Как использовать аргумент сложных параметров типа в конструкторе Spring.NET
-
13-09-2019 - |
Вопрос
Я пытаюсь использовать Spring.NET с приложением C# для заполнения аргумента конструктора массива параметров (ключевое слово params), который имеет сложный тип (назовите его SecretCode, который является перечислимым типом).
Может ли кто-нибудь помочь мне указать документацию, чтобы настроить XML-файл для этого?
Для справки, вот соответствующие фрагменты кода:
public class MyValueSet<T> where T: struct
{
public MyValueSet(params T[] values) {...}
}
public class DerivedClass : MyValueSet<SecretCode> {...}
public enum SecretCode {...}
Жестко закодированный код, который я пытаюсь заменить файлом конфигурации Spring.NET, (достаточно близок к этому):
var something = new DerivedClass(SecretCode.One, SecretCode.Two, SecretCode.Fifty-Two);
Мысли?
Решение
Я опубликовал вопрос, чтобы поделиться ответом, который я придумал, и посмотреть, есть ли у кого-нибудь, кто знает Spring.NET более подробно, лучший ответ.
Конфигурация, которую я получил в итоге, такова:
<object id="myobject" type="DerivedClass, Assembly.Containing.The.DerivedClass">
<constructor-arg name="values">
<list element-type="SecretCode, Assembly.Containing.The.SecretCode.Enumeration">
<value>One</value>
<value>Two</value>
<value>Fifty-Two</value>
</list>
</constructor-arg>
</object>
Не связан с StackOverflow