zoukankan      html  css  js  c++  java
  • Spring.net -- 目前不支持getter、setter的访问限定符

        如果你使用Spring.net作为你的IOC容器,那么一定要注意这个问题--Spring.net 目前不支持getter、setter的访问限定符。
        我们通常使用setter属性来进行依赖注入,如:
        public class A
        {
            
    #region B
            
    private B b;
            
    public B B
            {
                
    get { return b; }
                
    set { b = value; }
            } 
            
    #endregion
        }

        
    public class B
        {
        }
        针对上述的定义,在Spring.net中配置A类型的对象,并注入B类型对象的依赖,是可以完全正常工作的。
        但是,假设,我希望A类型的B属性只能给A的派生类访问,我们通常会为B属性的getter加上Protected限定符,就像这样:
        public class A
        {
            
    #region B
            
    private B b;
            
    public B B
            {
                
    protected get { return b; }
                
    set { b = value; }
            } 
            
    #endregion
        }

        
    public class B
        {
        }
          在这种定义下,如果仍然采用一样的spring配置,则会抛出"未将对象引用设置到对象实例"的异常 -- 非常常见的一个异常。

          当我依照这个异常提示在数以千计的组件构成的应用程序中去查找可能的bug时,那是怎样的一种痛苦--实际上我的代码和配置都没有问题,是spring.net开了一个玩笑 -- 为了搞清楚这个玩笑,我花了将近2个小时。所以,我不希望朋友你在以后会因为同样的问题而再次浪费我们宝贵的时间。





  • 相关阅读:
    kvm 存储
    centos 磁盘扩容,新建lv
    openStack windows2008 centos6.* img
    openStack icehouse for centos6.4 production Env 实战
    openStack error infos 调试
    iptables 规则预设置为新centos系统
    ubuntu openStack icehouse dashboard theme自定义
    linux c in common use function reference manual
    openStack centos6.4
    ubuntu 常用生产环境部署配置测试调优
  • 原文地址:https://www.cnblogs.com/zhuweisky/p/1210206.html
Copyright © 2011-2022 走看看