贴代码:
{
public People()
{
}
private Info info;
[Dependency]
public Info Info
{
set { info = value; }
get { return info; }
}
}
public class Info
{
public string Name { get; set; }
}
Main函数中使用:
container.RegisterType(typeof(People));
container.RegisterType(typeof(Info));
People ppl = new People();
Console.WriteLine(ppl.Info.Name);//报错,Info为null,注入失败
ppl.Info = container.Resolve<Info>();
我查了很多例子,好像也没有做特别的配置啊。请高手帮忙看看,谢谢。
container.RegisterType(typeof(People));
container.RegisterType(typeof(Info));
People ppl = new People();
//加上这个
container.BuildUp(ppl)
@沧海月明.: 你的问题的关键代码是:
System.Web.Mvc.DependencyResolver.SetResolver(new UnityDependencyResolver(Container));//MVC特有的
这样不需要显示赋值,不需要new也不需要Resolve。
UnityDependencyResolver的实现是相对固定的,可以网上搜一下
我的加上了 Dependency,出现了以下错误,求解决......
错误 1 特性“Dependency”在该声明类型中无效。它只在“assembly”声明中有效。
问题解决没,我也遇到了
设置属性为public 即可
自带的特性和unity的属性有冲突。加下这个引用
using Unity.Attributes;
就可以了。