28
|
Samuel Neff · 技术社区 · 14 年前 |
1
5
恐怕答案是你 不能 得到你想要的-微软认为这是一个“例外情况”,所以它会抛出一个例外。 您可以像在回答中描述的那样使用反射,但您不想这样做,因此受到了微软提供的API的限制,无论是好是坏。
如果你决定使用反射,注意的是
希望有帮助。我建议你向 Microsoft Connect . |
2
9
我将您的代码重构为:
您的问题要求不要使用异常处理(我假设是出于性能原因),我的答案是。但是,通过将代码从使用“if”(httpcontext.current!=空&httpcontext.current.request!=null)“to”if(isRequestavailable())“当您找到如何不使用异常处理的答案时,只有一个地方可以更改代码。 |
3
4
你
不应该
即使
使用请求
(或响应)
如果你只是想暂时破解它,你可以使用反射(如果你有中等以上的信任)或者捕获一个异常(即使你不想这样做),并将结果存储在一个静态变量中,或者可能使用一个静态变量。 httpContext包装 以下内容:
你也可以用
因此,最好的方法是在初始化类或不在AppStart中初始化类时移除它们对httpContext的依赖。 你在应用程序启动中使用请求的理由是什么?统计数据?或者只是告诉用户他唤醒了应用程序? 编辑 用代码更好地解释:
在代码中:
或者用户控制的更快的方法:
应用程序内启动:
您可以在您的文档中注意到这种行为,并且应该一切正常。类AppStart的上下文应该是您获得此类异常的唯一位置。
还可以在成员上实现IDisposable,并在AppStart中使用
|
4
1
我想我有解决办法。我维护了一个日志库,和您有相同的问题。如果是Web请求,我将从httpcontext获取一些数据。但是,根据日志库的使用方式,可能会发生相同的情况。这是我的解决方案。我的密钥修复程序正在检查处理程序是否为空。
根据您试图完成的任务,您可能可以从system.web.hostingenvironment获取Web应用程序的一些属性和设置。 |
5
0
我添加了一条评论,但它会自动隐藏。 我认为更重要的是从请求中了解您需要什么。
例如,您提供的提供解决方案的链接正在查找
如果这正是你想要的(比如,加载web.config和app.config),你可以这样做:
如果(或)
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |