我有以下linq语句
builtIn = (from type in Assembly.GetExecutingAssembly().GetTypes()
where type.IsClass && type.Namespace.ToUpper().StartsWith("PD3.MODULES.BUILTIN.")
let onStartMethod = type.GetMethod("Init")
where onStartMethod != null
select onStartMethod
);
但只有在我遗漏
的情况下才有效 && type.Namespace.ToUpper().StartsWith("PD3.MODULES.BUILTIN")
部分:(
在代码中,我必须使用
考虑这一点if (builtInInit.ToString() == "Pd3.Module Init()")
但我真的不喜欢这个解决方案,所以这是我的2部分问题
关注, 斯蒂
答案 0 :(得分:2)
根命名空间中的类型可以具有空命名空间,因此它在null上调用.StartsWith
;首先消除那些:
... && type.Namespace != null && type.Namespace. {blah}