Dorian Deng-www.doriandeng.cn

追随理想和美人而生活

博客园 首页 新随笔 联系 订阅 管理
  95 Posts :: 0 Stories :: 204 Comments :: 77 Trackbacks

最新评论

共5页: 1 2 3 4 5 下一页 
@自由、创新、研究、探索……
...windsor和spring.net也有属性注入的好不好,你就一2
非常感谢,我想要封源码,wangxj02@163.com,先谢谢了。
re: Nfx 类库 0.1.3089.20632 发布 zhengxionghua 2008-06-17 23:15  
文章开头的连接可以看到全部,还有示例下载
:)
re: Nfx 类库 0.1.3089.20632 发布 SOSOS's BLog 2008-06-17 18:56  
图片都显示不出呢?`
这个好像翻译了 英文的帮助,很生硬,原文也不好,太简单,
我单步调式代码后发现,有些细节上根本不是这样,比如:
“当系统实例化 MyApplication 类时,它检测属性确定这是否是一个类型为 MyListener 的监听程序” 我仔细看了看,并不是把MyApplication 实例化的时候 就确定 MyListener 的 。具体的 确定监听,是 依赖注入容器的 ObjectBuilder。要找到 代码中真正的 把分离的 事件和 处理程序 绑定一起的,还是比较麻烦,因为是ObjectBuilder中的代码来做的,而在entlib中,那些代码是外部代码。

希望能写一些带有自己理解的文章。
受益颇深,转走了哈!!!
恩,看来MS把这些东西分离出来却是是个不错的选择
可惜我不太懂
最近看到很多这个东西
不错
enterprise library新的东西,应该会搅起一场腥风血雨
@浪子
@紫色阴影
@b4nc
以上我们讨论的问题,我会在《深入 Unity 1.x 之四》中给出一个满意的答案,而且是一个大家都期待的答案。
@Dorian Deng
不过很多人不喜欢Xml配置,就喜欢用Attribute 呵呵
@Dorian Deng
DI可替换是经常会遇到的。
Program类使用Unity是没有问题的,但是上面所写的方法是从容器中获得对象显式给属性赋值,不够透明
要透明的话被注入的类的属性就得加上[Dependency]吧,这样又太侵入了
当然这里可以用Factory
这篇文章有些观点说得很好http://ayende.com/Blog/archive/2008/02/24/Reviewing-Unity.aspx
@浪子
Spring/Spring.Net 算是比较好的 Java下还有一堆 :)
@紫色阴影
我指的是示例中的 Program 类,假如要在其中使用 Unity 来获取对象,如果不用其 API,又如何称为使用了 Unity?好绕的问题

如果连 DI 容器也要求可替换的,那就需要自己写代码来做成 Provider,这不就将问题复杂了,也失去了使用 DI 的好处。
@紫色阴影

想知道.net/java底下哪些IoC容器是非侵入性,thanks in advance.^_^
嗯.没错.

所以说对于需要非侵入性的IoC容器,适用两个场景:

1.现有程序,需要加入IoC来做对象注入
2.可以预见未来有可能会替换IoC容器的provider

如果这两种情况就需要非侵入性的.

--引用--------------------------------------------------
紫色阴影: 如果现在有一大堆code存在,而需要加上IOC,难道要所有需要注入的地方都得改code?
而且非侵入性的也容易替换

--引用--------------------------------------------------
浪子: 明白了,b4nc是要做完全的零耦合啊。

不过没仔细衡量过这样子做是为了解决什么问题?似乎没人整天换IoC容器?
--------------------------------------------------------

--------------------------------------------------------
@Dorian Deng
为什么没有意义?为什么我的代码要依赖于Unity的API呢
@紫色阴影
是否被侵入是针对服务提供对象而言的,对于服务使用对象进行这样的讨论没有意义。
如果现在有一大堆code存在,而需要加上IOC,难道要所有需要注入的地方都得改code?
而且非侵入性的也容易替换

--引用--------------------------------------------------
浪子: 明白了,b4nc是要做完全的零耦合啊。

不过没仔细衡量过这样子做是为了解决什么问题?似乎没人整天换IoC容器?
--------------------------------------------------------
明白了,b4nc是要做完全的零耦合啊。

不过没仔细衡量过这样子做是为了解决什么问题?似乎没人整天换IoC容器?

--引用--------------------------------------------------
紫色阴影: @浪子
using Microsoft.Practices.Unity;
这就算是侵入了
--------------------------------------------------------
@浪子
using Microsoft.Practices.Unity;
这就算是侵入了
Clark Zheng兄已经回答了你的问题。

使用属性注入即可,并不需要如你说的那样子,超长构造函数^_^

--引用--------------------------------------------------
b4nc: --引用--------------------------------------------------
Clark Zheng: @b4nc
不知所云,Unity也支持属性注入和方法调用注入呀
--------------------------------------------------------
这位仁兄,有没有看清楚讨论的重点?是非侵入式注射。


--引用--------------------------------------------------
Dorian Deng: @b4nc
需要构造函数超长的情况实质上很少出现,如果出现这种情况,就应该首先考虑是不是自己的设计上存在问题了。
--------------------------------------------------------
问题是,我现在想非侵入式注射多个对象,在Unity里只能采用这种超长的构造函数。

我一直感觉不理解的是,像属性,方法注射,在技术上完全可以做到非侵入的,为什么现在需要依赖于Unity?
或许我只能期待Untiy的下一个版本了。
--------------------------------------------------------
@Dorian Deng
Unity还是不错的
和Guice有点像,Guice利用annotation,Unity使用attribute
的确侵入性非常强,到处需要引用第三方的库,如别人所说的“简直是侵略”
但是可以用设计来避免这个问题
@b4nc
你会错我的意思了,我只是说没有人要求你在不合适的时机使用 Unity,它不过是一个工具,解决不了你的问题,当然可以使用其他的。与其在此讨论某个框架多不好,某个框架多好,不如好好讨论下在哪种环境可以发挥更好的作用,而哪些情况下不适用使用。

另外,我的看法是什么?你的看法又是什么?有什么不同?奇怪,好像并没有什么不同。

Unity 的确不适用于你所说的情况,可在某些地方,使用它却很合适。学会合理的使用一个工具,而不是抓住一个缺点就否定全部。
--引用--------------------------------------------------
Dorian Deng: @b4nc
如果一定需要这样,可以考虑用 Spring.NET。没有人要求你一定使用 Unity。
--------------------------------------------------------

貌似lz容不得别人对Unity有不同看法啊。
我不是说一定要这样,而只是讨论一个基本的技术问题,既然lz都这么表态了,那我不再说了行了吧。
@b4nc
如果一定需要这样,可以考虑用 Spring.NET。没有人要求你一定使用 Unity。
@ganquan
每种方法都有其适用范围,只能说 Unity 不适用于你。

另外,不要看不起做网站的、Web 应用开发的和 B/S 架构企业应用开发的,Unity 同样适用于其他很多情况。
依赖
很好
--引用--------------------------------------------------
Clark Zheng: @b4nc
不知所云,Unity也支持属性注入和方法调用注入呀
--------------------------------------------------------
这位仁兄,有没有看清楚讨论的重点?是非侵入式注射。


--引用--------------------------------------------------
Dorian Deng: @b4nc
需要构造函数超长的情况实质上很少出现,如果出现这种情况,就应该首先考虑是不是自己的设计上存在问题了。
--------------------------------------------------------
问题是,我现在想非侵入式注射多个对象,在Unity里只能采用这种超长的构造函数。

我一直感觉不理解的是,像属性,方法注射,在技术上完全可以做到非侵入的,为什么现在需要依赖于Unity?
或许我只能期待Untiy的下一个版本了。
加密混淆后,类名、属性名、方法名全部变了,还怎么注入?
大部分人都好像不关心加密,都是做网站的?
@b4nc
不知所云,Unity也支持属性注入和方法调用注入呀
@b4nc
需要构造函数超长的情况实质上很少出现,如果出现这种情况,就应该首先考虑是不是自己的设计上存在问题了。
>>虽然属性注入和方法调用注入必须使用特性进行声明,侵入了其他独立的组件,但这二种方法都可以用构造函数注入所代替,所以在设计上并无不可。

这种设计问题多多。

假设你需要注入n个对象,难道写一个超长的构造函数??
我就不理解,为什么spring就可以做的到,ms就做不到?这完全不存在技术上无法实现的问题。
呵呵,同意楼上
re: 深入 Unity 1.x 依赖注入容器之一:入门 皇帝的新装 2008-05-21 01:26  
看看谁解释的最好
呵呵
re: Unity 1.0 中文文档:1 - Unity 简介 长空新雁 2008-05-06 08:59  
支持楼主翻译下去
re: Unity 1.0 中文文档:1 - Unity 简介 生鱼片 2008-05-06 07:30  
支持
re: Unity 1.0 中文文档:1 - Unity 简介 Inrie(洪晓军) 2008-05-05 21:59  
支持~
谢谢!
re: 1.1 关于 Enterprise Library 3.1 doriandeng 2008-04-12 13:24  
@凌风
加入我们的群吧:22369239,那儿会有很多人帮助您。
re: 1.1 关于 Enterprise Library 3.1 凌风 2008-04-10 17:10  
我还是不清楚怎么对外部配置文件进行操作。
可以告诉我吗?
很好啊 学习
不错,收藏了,楼主辛苦!

@a feng
抱歉,基于某些原因,我们不得不暂时删除该下载,请谅解。
PDF的下载好像找不到麻
@路过
这个例子在文档的什么地方呢?我没有找到,谢谢!
晕,全是翻译的,例子都没有自己写。。。
@自由、创新、研究、探索……
在 Unity 中的属性注入是可选的,设计者推荐使用构造函数注入来达到同样的目的。
当然,不排除在某些地方使用属性注入会更好。在后面的文章中我会更深入的讨论此问题。
共5页: 1 2 3 4 5 下一页