mvc项目里,定义的类里
public class UserRepository : IRepository<UserInfo, string>
{
[Dependency]
public QueryToolEntities ctx { get; set; }
}QueryToolEntities是EF派生类
public partial class QueryToolEntities : DbContext
{
}想问一下,为什么在controller的构造函数里实现了依赖注入之后,这个ctx就已经被实例化了呢,正常的理解不是应该要定义成接口才可以实现属性的依赖注入吗?麻烦大虾答疑解惑
public class UserRepository : IRepository<UserInfo, string>
{
[Dependency]
public QueryToolEntities ctx { get; set; }
}QueryToolEntities是EF派生类
public partial class QueryToolEntities : DbContext
{
}想问一下,为什么在controller的构造函数里实现了依赖注入之后,这个ctx就已经被实例化了呢,正常的理解不是应该要定义成接口才可以实现属性的依赖注入吗?麻烦大虾答疑解惑
你看看AssemblyInfo的配置
https://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1&l=ZH-CN&k=k(System.Runtime.CompilerServices.DependencyAttribute);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);k(DevLang-csharp)&rd=true
那么无论是基类还是接口类,都能达到抽象。
所以就无所谓是定义接口还是定义基类了。
换句话说 Interface a=new A();Interface a=new B(); 这样使得2个派生类实例化。和BaseClass a=new A();BaseClass a=new B(); 道理上是一样的。
那么无论是基类还是接口类,都能达到抽象。
所以就无所谓是定义接口还是定义基类了。
换句话说 Interface a=new A();Interface a=new B(); 这样使得2个派生类实例化。和BaseClass a=new A();BaseClass a=new B(); 道理上是一样的。谢谢斑竹