小编Bil*_*man的帖子

如何确定属性是否是C#中的用户定义类型?

如何确定属性是否是用户定义的类型?我尝试使用IsClass,如下所示,但它的值对于String属性是真的(谁知道还有什么).

foreach (var property in type.GetProperties()) {
    if (property.PropertyType.IsClass) {
        // do something with property
    }
}
Run Code Online (Sandbox Code Playgroud)

*更新以获得更清晰*

我试图遍历给定类型的定义,如果在程序集中定义了给定类型或其任何公共属性,我正在搜索嵌入式JavaScript文档.我只是不想在本机.NET类型上浪费处理资源和时间.

c# reflection

12
推荐指数
2
解决办法
1万
查看次数

无堆栈跟踪的错误详细信息

在我的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.IncludeErrorDetailPolicyIncludeErrorDetailPolicy.Always,所有的细节都序列化到HTTP响应(Message,ExceptionMessage,ExceptionTypeStackTrace).

如果我设置config.IncludeErrorDetailPolicyIncludeErrorDetailPolicy.Never,则仅Message包括.

不过,我想包括Message,ExceptionMessageExceptionTypeHTTP响应,但不是StackTrace; 我该如何只排除StackTrace?或者我应该将所需的详细信息连接到Message字段中?

要在我的问题中添加一些上下文,客户端需要这些异常细节来处理特殊情况......但绝不是堆栈跟踪.

c# asp.net-mvc asp.net-mvc-4 asp.net-web-api

6
推荐指数
1
解决办法
2697
查看次数