ObjectDataSource真的很糟糕吗?

时间:2010-02-15 02:03:57

标签: .net inversion-of-control objectdatasource encapsulation

我从来没有必要真正使用除SiteMap数据源之外的任何.NET数据源,但是我正在尝试利用需要为其分配数据的控件上的内置CRUD操作来源正确工作。

由于我一直在网上处理有关实现ObjectDataSource及其相关类的信息,我已经意识到它是如此令人眩目的令人不安,事实上它驱逐了一个基本上是一个静态的类,应该神奇地能够处理一种类型的CRUD操作。一旦我意识到我无法正确设计这些适配器,所以他们不会像血友病一样流血。

我提出的唯一想法是,如果类在其每个操作中利用Service Locator模式来获取正确的类来进行实际的CRUD。通过在控制容器的反转中使用.Resolve,这有点可行,但是这似乎只是因为我需要通过我的IOC框架做大量的魔术来将关注转移到一个更不明显的地方始终解析数据代理的正确实例。

所有我真正需要的适配器是调解调用以将CRUD操作应用于ViewState支持的IList<MyBizObject>

在对此进行更多思考之后,我一直在写这个问题,我开始考虑如何使用Model-View-Presenter模式进行逻辑分离,我看到的第一个解决方案是因为我的Presenter类有一个属性我在其上查看我可以使用Container.Resolve<Presenter>()来访问我的View,这样我就可以访问我的ViewState支持字段,并为需要它的视图提供ObjectDataSource的每个演示者创建一个类。

是否有其他人有任何输入或替代品,而不是我最后的想法?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,是的,它真的很糟糕。但是,使用服务定位器模式,可以将有状态页面视图状态或任何其他类型的有状态存储库公开给无状态对象数据源提供程序类。

相关问题