System.Type type = Type.GetType("something");System.Type没有成员“IsNamespace”,所以如何判断类型是否引用了命名空间?
在编译时不知道"something"类型。
发布于 2017-02-08 01:20:23
它没有"IsNamespace“成员,因为名称空间不能由 objects表示。以下行无法编译:
typeof(System.Linq);因此,假设您有一个Type对象,那么您知道它不是一个名称空间。使用这样的字符串,如果GetType只是一个名称空间,它应该抛出。
发布于 2017-02-08 01:19:44
Type不引用名称空间--它们指的是类型。类型具有一个属性,该属性描述它们在哪个命名空间中。
可以枚举程序集/应用域中的所有类型,并收集/缓存唯一的命名空间。
HashSet<string> allNamespaces = new HashSet<string>(
AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Select(t => t.Namespace)
);
bool isNamespace = allNamespaces.Contains("foo");https://stackoverflow.com/questions/42102994
复制相似问题