首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从IList注入泛型spring.net

从IList注入泛型spring.net
EN

Stack Overflow用户
提问于 2013-07-24 18:09:41
回答 1查看 2.3K关注 0票数 0

名称空间Device.Control中有一个枚举.

代码语言:javascript
复制
public enum State {
    IN_PROGRESS, SUSPENDED, HALTED, FINISHED
}

我还有个课..。

代码语言:javascript
复制
public class CustomStateManager {
    public IList<State> ManagingStates { get; set; } 
}

这是我的spring.net配置XML ..。

代码语言:javascript
复制
<object id="MyStateManager" type="CustomStateManager">
    <property name="ManagingStates">
        <list>
            <value>SUSPENDED</value>
            <value>HALTED</value>
        </list>
    </property>
</object>

在构建并尝试注入MyStateManager对象之后,Spring.NET抱怨它无法设置对象的ManagingStates属性。我知道这个错误..。

创建名为“MyStateManager”的对象的错误:错误设置属性值: PropertyAccessExceptionsException (1错误);嵌套PropertyAccessExceptions是:[Spring.Core.TypeMismatchException:无法将System.Collections.ArrayList类型的属性值转换为所需的类型Spring.xml SandboxConsole、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null]。

我对Spring.NET有点陌生,我不知道这里的问题是什么,只是它不能向IList属性中注入一个ArrayList。是否可以在值为枚举类型的配置中创建列表?如果是,怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-24 19:20:29

您必须指定element-type

代码语言:javascript
复制
<list element-type="Namespace.State, Assembly">
    <value>SUSPENDED</value>
    <value>HALTED</value>
</list>

其中名称空间是类的命名空间,程序集是包含枚举的程序集。

代码语言:javascript
复制
<list element-type="SandboxConsole.Device.Control.ApplicationEnumerations+State, SandboxConsole">
    <value>SUSPENDED</value>
    <value>HALTED</value>
</list>

ApplicationEnumerations+State,因为您试图访问内部类。

http://www.springframework.net/doc-latest/reference/html/objects.html#objects-generic-collections-values

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17841658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档