在一个学习曲线上。知道你们其中一位大师能帮我吗。
我正在调查SubSonic (SimpleRepository)和StructureMap。我真的很想让他们两个都明白。
为了便于使用,我希望使用SimpleRepository,并让我的模型定义数据库,而不是一开始就脱离或创建DB结构。
我创建了一个继承自SimpleRepository的具体类
public class DataRepository : SimpleRepository
{
public DataRepository() :
base("Application", SimpleRepositoryOptions.RunMigrations)
{ }
}将其添加到我的应用程序初始化
ObjectFactory.Initialize(
x => x.ForRequestedType<DataRepository>()
.TheDefaultIsConcreteType<DataRepository>()
.CacheBy(InstanceScope.Hybrid));现在我确信,在应用程序中的任何地方,我都使用相同的SimpleRepository。
我是不是把事情搞得太复杂了?或者我说的没错吧。我知道你不知道其他所有的细节,所以你也可以泛泛地跟我说。谢谢。
发布于 2009-08-28 21:14:57
我认为你在这里遗漏了DI的核心思想之一。这个想法是使用接口从实际实现功能的具体类中抽象出调用代码。
public interface IDataRepository { }
internal class DataRepository : SimpleRepository, IDataRepository
{
}
ObjectFactory.Initialize(
x => x.ForRequestedType<IDataRepository>()
.TheDefaultIsConcreteType<DataRepository>()
.CacheBy(InstanceScope.Hybrid));现在,所有客户端代码应该只解析/引用IDataRepository接口。
https://stackoverflow.com/questions/1214470
复制相似问题