如何确定属性是否是用户定义的类型?我尝试使用IsClass,如下所示,但它的值对于String属性是真的(谁知道还有什么).
foreach (var property in type.GetProperties()) {
if (property.PropertyType.IsClass) {
// do something with property
}
}
Run Code Online (Sandbox Code Playgroud)
*更新以获得更清晰*
我试图遍历给定类型的定义,如果在程序集中定义了给定类型或其任何公共属性,我正在搜索嵌入式JavaScript文档.我只是不想在本机.NET类型上浪费处理资源和时间.
在我的MVC WebApi服务中,当抛出异常时,它由过滤器处理:
public class GlobalExceptionFilter : ExceptionFilterAttribute {
public override void OnException(HttpActionExecutedContext context) {
context.Response = context.Request.CreateErrorResponse(HttpStatusCode.BadRequest,
"Bad Request",
context.Exception);
}
}
Run Code Online (Sandbox Code Playgroud)
此过滤器生成的此HTTP响应取决于config.IncludeErrorDetailPolicy配置.
如果我设置config.IncludeErrorDetailPolicy到IncludeErrorDetailPolicy.Always,所有的细节都序列化到HTTP响应(Message,ExceptionMessage,ExceptionType和StackTrace).
如果我设置config.IncludeErrorDetailPolicy为IncludeErrorDetailPolicy.Never,则仅Message包括.
不过,我想包括Message,ExceptionMessage和ExceptionTypeHTTP响应,但不是StackTrace; 我该如何只排除StackTrace?或者我应该将所需的详细信息连接到Message字段中?
要在我的问题中添加一些上下文,客户端需要这些异常细节来处理特殊情况......但绝不是堆栈跟踪.