自从哥的项目使用MEF以来,天天那个纠结啊,甭提了。稍有错误,MEF就报错,但就不告诉你哪错了,大爷的。
后来看了MEFX的相关调试方法,感觉也不太理想,根本不够直观的看到错误原因,也许是没有深入学习吧。
言归正传,百度、谷歌了一圈,发现了一个小技巧,大家不妨参考下。
1 public CompositionContainer Container 2 { 3 get 4 { 5 if (!HttpContext.Current.Items.Contains(MefContainerKey)) 6 { 7 HttpContext.Current.Items.Add(MefContainerKey, new CompositionContainer(_catalog, CompositionOptions.DisableSilentRejection)); 8 } 9 var container = (CompositionContainer)HttpContext.Current.Items[MefContainerKey]; 10 HttpContext.Current.Application["Container"] = container; 11 return container; 12 } 13 }
红色部分就是我想说的,加上后,MEF就可以爆出相对详细的错误信息了,接下来的事情you know!