我得到了一些带有扩展方法的静态类,它们使用存储库模式向实体添加“业务逻辑”。
现在有时我需要IRepository
在这些扩展函数中创建一个新函数。
我目前正在通过我正在扩展的对象访问我的 Ninject 内核来解决它,但这真的很难看:
public static IEnumerable<ISomething> GetSomethings(this IEntity entity)
{
using (var dataContext = entity.kernel.Get<IDataContext>())
return dataContext.Repository<ISomething>().ToList();
}
我还可以创建一个静态构造函数,以某种方式从工厂访问 Ninject 内核,Ninject 2 中是否已经有基础设施?
有人知道更好的解决方案吗?有人对这种实现业务逻辑的方式有意见吗?