我想使用interface作为对象类。就像你在某些CMS中看到的那样,如Orchard。例如,您可以使用IContentManager接口,就像对内容执行许多操作的对象一样。甚至使用接口作为ViewModel(第一个具有优先权)。 我用Autofac做了一些像
这样的事情public class BLL_DependencySetup : Autofac.Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterType<RoleService>().As<IRoleService>();
builder.RegisterType<RoleMV>().As<IRole>().InstancePerDependency();
base.Load(builder);
}
}
但实际上它并不像我想要的那样。
public class ISRelatedContentsDriver : ContentPartDriver<ISRelatedContentsPart>
{
private readonly IContentManager _contentManager;
public ISRelatedContentsDriver(IContentManager contentManager)
{
_contentManager = contentManager;
}
我想做一些你在上面看到的事情。它与IoC有什么关系吗? 编辑:我只是想知道它是如何工作的。并在我自己的架构中使用它。不在果园里。
答案 0 :(得分:1)
您的类或接口需要从IDependency
继承。
然后你可以像在Orchard中的任何其他服务一样注入它。
例如:
public interface MyInterface : IDependency
{
void DoSomething();
}
public MyClass : MyInteface
{
public void DoSomething()
{
// work
}
}
public class ISRelatedContentsDriver : ContentPartDriver<ISRelatedContentsPart>
{
private readonly IContentManager _contentManager;
private readonly IMyInterface _myInterface;
public ISRelatedContentsDriver(IContentManager contentManager, IMyInterface myInterface)
{
_contentManager = contentManager;
_myInterface = myInterface;
}
}
答案 1 :(得分:0)