foreach (var item in System.Reflection.Assembly.GetEntryAssembly().GetTypes()) { if (item.GetInterface(typeof(ICaijiSiteBase).Name) != null) { var configurationInstance = Activator.CreateInstance(item); site = configurationInstance as ICaijiSiteBase; //if (IsDebug) // System.Diagnostics.Trace.WriteLine(item.FullName); if (!site.IsSubClass) { break; } } } site为null
时间: 2024-02-10 16:08:50 浏览: 123
Parallel.ForEach的卡死现象(线程操作问题C#源码实例)
根据你提供的代码,我看到你正在尝试使用反射获取程序集中实现了`ICaijiSiteBase`接口的类型,并创建它们的实例。然后您将这些实例赋值给`site`变量。
如果`site`为`null`,那么可能是因为程序集中没有实现`ICaijiSiteBase`接口的类型,或者实现了该接口的类型中的`IsSubClass`属性为`true`,导致您在代码中将`site`变量设置为`null`。
您可以在代码中添加调试语句来检查程序集中是否存在实现`ICaijiSiteBase`接口的类型,或者在实现该接口的类型中检查`IsSubClass`属性的值是否为`false`。这样可以更好地了解问题的根本原因。
阅读全文