【发布时间】:2014-05-21 21:09:51
【问题描述】:
如何确定属性是否为用户定义类型?我尝试使用 IsClass,如下所示,但它的值对于 String 属性是正确的(谁知道还有什么)。
foreach (var property in type.GetProperties()) {
if (property.PropertyType.IsClass) {
// do something with property
}
}
* 更新更清晰 *
我正在尝试遍历给定类型的定义,如果在程序集中定义了给定类型或其任何公共属性,我正在搜索嵌入的 JavaScript 文档。我只是不想在原生 .NET 类型上浪费处理资源和时间。
【问题讨论】:
-
很明显,因为
string是一个类。您如何区分“用户定义”类型和另一个?来自外部非标准库的类型是“用户定义的”吗? -
你知道类对象吗?这样的事情怎么样? "if (property.PropertyType == typeof(MyClass)) { ... }" 或者您可以在您的情况下使用它来忽略字符串。
-
如果您能详细说明为什么需要它或这样做的目的是什么,也许会有所帮助。
-
Bill - 我认为你真的应该告诉我们为什么你想这样做 - 可能有更好的方法。
标签: c# reflection