Spring.net -- 目前不支持getter、setter的访问限定符
来源:互联网 发布:app后台管理系统源码 编辑:程序博客网 时间:2024/06/10 16:03
如果你使用Spring.net作为你的IOC容器,那么一定要注意这个问题--Spring.net 目前不支持getter、setter的访问限定符。
我们通常使用setter属性来进行依赖注入,如:
但是,假设,我希望A类型的B属性只能给A的派生类访问,我们通常会为B属性的getter加上Protected限定符,就像这样:
当我依照这个异常提示在数以千计的组件构成的应用程序中去查找可能的bug时,那是怎样的一种痛苦--实际上我的代码和配置都没有问题,是spring.net开了一个玩笑 -- 为了搞清楚这个玩笑,我花了将近2个小时。所以,我不希望朋友你在以后会因为同样的问题而再次浪费我们宝贵的时间。
我们通常使用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类型对象的依赖,是可以完全正常工作的。{
#region B
private B b;
public B B
{
get { return b; }
set { b = value; }
}
#endregion
}
public class 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配置,则会抛出"未将对象引用设置到对象实例"的异常 -- 非常常见的一个异常。{
#region B
private B b;
public B B
{
protected get { return b; }
set { b = value; }
}
#endregion
}
public class B
{
}
当我依照这个异常提示在数以千计的组件构成的应用程序中去查找可能的bug时,那是怎样的一种痛苦--实际上我的代码和配置都没有问题,是spring.net开了一个玩笑 -- 为了搞清楚这个玩笑,我花了将近2个小时。所以,我不希望朋友你在以后会因为同样的问题而再次浪费我们宝贵的时间。
- Spring.net -- 目前不支持getter、setter的访问限定符
- Getter / Setter 的滥用
- ES5的getter/setter
- 设置器(setter)和访问器(getter)的使用方法
- JS 对象的访问器属性setter getter函数
- 对getter / setter的认识
- Swift的setter与getter
- lombok的@Getter和@Setter
- JS的getter和setter
- JavaScript getter setter的使用
- jQuery的getter和setter
- 属性访问器(Property Accessor)----Setter/Getter
- JS访问器(getter和setter)
- Java反射机制-调用setter及getter方法
- objective-c中的属性定义及getter / setter方法
- getter/setter
- setter,getter
- getter、setter
- 【Emit基础】OpCodes.Ldind_Ref 和 OpCodes.Ldind_I*
- 【Emit基础】System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
- Strive 2D游戏引擎 -- 序
- 高性能的大型系统经验 -- 将数据分类、并缓存
- Remoting插件与网关设置
- Spring.net -- 目前不支持getter、setter的访问限定符
- DataRabbit 轻量的ORM框架(16)-- Entity缓存
- DS18B20温度模块.C
- 使用动态代理,提高工作效率
- 你知道 typeof(void) 吗?
- IL -- 手动处理装箱Box
- QA的职责
- 项目经理的职责
- 总裁与专才