Spring.NET如何使用私有的setter方法?

3

在尝试使用Spring.NET中集合的问题时,我发现Spring可以使用私有setter注入依赖项。我有两个问题:

  1. 这里有文档吗?
  2. 推荐使用私有setter吗?

文档说:

基于setter的DI是通过调用对象上的setter方法实现的...

当然,它没有明确说明public setter方法,但这是我一直以来的假设。我正在使用.NET 3.5上的版本1.0.2。

2个回答

2

Don,

据我所知,这并没有记录在文档中 - 主要是因为我们不建议使用它。该功能存在是为了支持处理遗留/第三方库的罕见边缘情况。

您应该仅使用公共设置器,您也可以从单元测试中调用它们!

希望有所帮助, Erich


1
谢谢!也许值得记录并明确不鼓励这样做。请注意,添加私有Setter实际上会改变集合注入的语义,从添加变为替换。 - Don Kirkby

1

Spring 的 Java 版本使用反射机制,可以访问那些私有的 setter 方法。这是很好的,因为你不想强迫某人改变一个不可变对象只是为了满足 Spring。

个人而言,我喜欢尽可能使用构造函数注入。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接