Ste*_*e K 8 c# oop orm dependency-injection
我正面临一个设计挑战,我似乎无法以令人满意的方式解决.我有一个包含所有共享ORM对象的类库程序集(使用EntitySpaces框架).这些对象用于两个或更多不同的应用程序,这就是它们在自己的程序集中的原因.这个设置对我来说已经工作了4年多了.
我还在Microsoft的模式与实践组(P&P)的复合应用程序块(CAB)上构建了一些应用程序.是的,我知道这已经很老了,但我是一名兼职开发人员,单人工作,不能更新到现有的框架.
这就是我的问题所在:我一直在运用我的OO设计技巧,每当进行大量重构时,我都试图从程序方法转向更多OO方法.当然,OO设计的一个主要方面是将操作放在它们使用的数据附近,这意味着我的ORM对象需要在适当的地方添加功能.当我考虑到我在CAB中使用P&P的Object Builder DI容器并且我将移动到我的ORM对象中的大部分功能需要访问我的应用程序公开的服务时,这证明是一个真正的头脑.
换句话说,假设我有一个名为"Person"的共享业务对象(原创,我知道),我有两个应用程序与一个人完全不同的事情.应用程序A提供了一组服务,Person对象需要具有DI,以便它能够采用当前遍布我的服务层的一些方法.应用程序B还有一组不同的服务,IT需要将这些服务用于人员对象.
考虑到P&P对象生成器如何使用属性修饰和类型反射来解析依赖关系,我不知道如何实现这一点.简而言之,我有一个共享对象,当在各种应用程序中使用时,我需要注入依赖项,以便它可以执行特定于该应用程序的某些操作.
我能想到的唯一方法是从Person对象继承Application A和B中的新Type.然后,我将非共享功能和DI代码添加到此特定于应用程序的专用Person对象中.现在我写道它似乎很明显,但它仍然是我能提出的唯一解决方案,我想在这里询问是否有其他人有他们想提出的不同解决方案?
我对解决方案的一个问题是,我可以看到自己陷入命名我的继承类型 - 我的意思是......它是一个人,所以你还能称之为什么呢?无论如何,希望你会有一些想法给我.
此外,我对现有的技术并不吝啬,实际上,老实说,我只是勉强掌握我目前正在使用的技术.因此,如果我说了一些矛盾或混乱的话,我希望你能从帖子的其余部分中理解得足以得到我所要求的东西.