小编Rob*_*per的帖子

"HttpContext.Current.Session"vs Global.asax"this.Session"

最近,在为工作的ASP.NET项目编写一些代码时.我们需要一个跟踪工具来获取我们将跟踪它们的用户活动(页面命中数等)的基本指标Session,然后通过Session_End输入将数据保存到DB Global.asax.

我开始乱砍,初始代码工作正常,在每个页面加载时更新数据库.我希望在每个请求中删除此数据库命中,然后只依赖于Session_End存储所有数据.

所有跟踪代码都封装在Tracker类中,包括基本上包装Session变量的属性.

问题 是,当我Tracker.Log()Session_End方法中执行时,HttpContext.Current.SessionTracker代码中的a失败了NullReferenceException.现在,这是有意义的,因为HttpContext始终与当前请求相关,当然Session_End,没有请求.

我知道Global.asax有一个Session属性返回一个HttpSessionState实际上似乎工作正常(我最终注入到跟踪器)..

不过我很好奇,到底如何才能得到相同的参考HttpSessionState使用对象Global.asax外面Global.asax

先谢谢你们,我很感激你的意见.:)

asp.net session session-state global-asax

13
推荐指数
2
解决办法
5万
查看次数

使用unix终端解析XML

有时我需要从XML文件中快速提取一些任意数据以放入CSV格式.在Unix终端中执行此操作的最佳做​​法是什么?我会喜欢一些代码示例,所以例如如何才能解决以下问题?

示例XML输入:

<root>
<myel name="Foo" />
<myel name="Bar" />
</root>
Run Code Online (Sandbox Code Playgroud)

我想要的CSV输出:

Foo,
Bar,
Run Code Online (Sandbox Code Playgroud)

xml unix csv shell parsing

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

提出一种通用方法在FAIL上抛出特定的异常类型

是的,我知道我会完全看起来像这个白痴,但我的大脑今天早上并没有开始装备.

我想要一个方法,我可以说"如果它变坏了,请回到这种类型的异常",对吧?

例如,类似的东西(这不起作用):

    static ExType TestException<ExType>(string message) where ExType:Exception
    {
        Exception ex1 = new Exception();
        ExType ex = new Exception(message);
        return ex;
    }
Run Code Online (Sandbox Code Playgroud)

现在让我感到困惑的是,我们知道泛型类型由于where子句而属于Exception类型.但是,代码失败是因为我们无法隐式地将Exception 强制转换ExType.我们也无法明确转换它,例如:

    static ExType TestException<ExType>(string message) where ExType:Exception
    {
        Exception ex1 = new Exception();
        ExType ex = (ExType)(new Exception(message));
        return ex;
    }
Run Code Online (Sandbox Code Playgroud)

因为那也失败了......那么这种事情可能吗?我有一种强烈的感觉,它会变得非常简单,但是我和老头脑一起度过了艰难的一天,所以让我有些松懈:P


更新

感谢回复的人,看起来我不是一个完全白痴!;)

好的,所以VegardSam让我能够实例化正确的类型,但显然卡住了,因为消息参数在实例化后是只读的.

Matt用他的回答击中了正确的指甲,我​​测试了这一切,一切正常.这是示例代码:

    static ExType TestException<ExType>(string message) where ExType:Exception, new …
Run Code Online (Sandbox Code Playgroud)

c# generics exception

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

如何在单击子项时停止为父元素触发onclick事件?

我在onclick事件中有两个问题,它们有点类似,所以我会在这里问他们.

第一:

我在div中有一个复选框.输入具有onchange功能,div具有onclick功能.

<div onclick="doSomething()">
     <input type="checkbox" onchange="doSomethingElse()" />
</div>
Run Code Online (Sandbox Code Playgroud)

问题是当我选中/取消选中doSomething()和doSomethingElse()时复选框.有关如何阻止这种情况发生的任何想法?我尝试过onchange ="doSomethingElse(event)"和doSomethingElse(e)函数我有e.stopPropagation(); 这没用.

第二:

我在div中有一个图像.div具有onclick功能,但图像没有.故意,图像比div大,并溢出div.

-----------------------
|        image        |
|   ---------------   |
|   |     div     |   |
|   |             |   |
|   ---------------   |
|                     |
-----------------------
Run Code Online (Sandbox Code Playgroud)

如果用户在div框的边界内单击,我只希望触发onclick.但是,如果你点击溢出到div外部的图像的一部分,onclick事件也会触发...任何想法?

第一个问题对我来说比第二个问题更重要.但如果有人能够回答这两个问题那就太棒了!

先谢谢你的帮助,
马特

html javascript events onclick

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

功能规范和敏捷过程

在传统的瀑布中,需求被收集 - 通常在MS-Word文档中 - 遵循一个深奥的模板.在"严格"瀑布模型中,此文档在需求阶段后冻结,并且变更控制/变更管理流程负责引入受控变更.(**)[通常,文件变成"活文件",最终成为"生活噩梦"]

目前,我将领导一个项目,将现有桌面应用程序重写为Web(从VB 6.0到ASP.Net).客户端具有他想要重写的应用程序的基线版本.[所以要求被冻结......没有范围蔓延].要按原样重用的数据模型.仅迁移前端/业务规则.看看应用程序,我觉得它最多是3/4主屏幕就是这样.

一些团队成员希望在他们开始新开发之前记录(在我看来,旧的思想流派).我和其他一些人认为,将UI转换为Web,查找旧代码,编写业务逻辑,进行自动化单元测试,继续进行集成测试以及按屏幕(或按功能划分的业务功能)进行屏幕显示相对容易

我的问题是:在敏捷开发中,如果我不优化它,我将如何保持"敏捷".我的意见是编写详细的文档是反敏捷的.你怎么看?敏捷大师将如何解决上述问题(将现有的VB 6.0应用程序重写为ASP.Net)?


免责声明: 创建1000页的功能规格可能是为了履行合同义务,这是一种政治需要,系统可能真的很复杂(现在,"复杂性"的定义是一片黑暗的旅程).

agile waterfall agile-processes

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

ASP.NET Web服务结果,代理类和类型转换

我还是ASP.NET世界的新手,所以我可以离开这里,但到目前为止这是我(有限的)知识的最佳选择!

假设我在Business命名空间中有一个标准的业务对象"Contact" .我编写了一个Web服务来从数据库中检索联系人的信息并将其返回.然后我写了一个客户端应用程序来请求所述细节.

现在,我还创建了一个实用程序方法,它接受"联系"并用它做一些魔法,Utils.BuyContactNewHat()比如说.当然需要类型的联系人Business.Contact.

然后我回到我的客户端应用程序并想要使用该BuyContactNewHat方法,所以我添加了对我的Utils命名空间的引用,并且它就是.但是,出现了一个问题:

Contact c = MyWebService.GetContact("Rob);
Utils.BuyContactNewHat(c); // << Error Here
Run Code Online (Sandbox Code Playgroud)

由于返回类型GetContactMyWebService.Contact和不Business.Contact符合预期的.我理解为什么这是因为在访问Web服务时,实际上是针对WSDL生成的代理类进行编程.

那么,是否有一种"更容易"的方式来处理这种类型的不匹配?我正在考虑尝试创建一个使用反射的通用转换器类,以确保两个对象具有相同的结构,而不是简单地将值从一个传递到另一个.

c# asp.net web-services

10
推荐指数
1
解决办法
4549
查看次数

VB.NET从可空类型中获取底层system.type

我正在尝试基于对象的属性创建数据集.例如,我有一个Person类的实例,其属性包括ID,Forename,Surname,DOB等.使用反射,我将基于对象属性向新数据集添加列:

For Each pi As PropertyInfo In person.GetType().GetProperties()
    Dim column As New DataColumn(pi.Name, pi.PropertyType)
    table.Columns.Add(column)
Next
Run Code Online (Sandbox Code Playgroud)

我的问题是,其中一些属性是可空类型,数据集不支持这些类型.有没有办法从可空类型中提取底层系统类型?

谢谢.

vb.net reflection dataset

10
推荐指数
2
解决办法
8120
查看次数

100%宽度的textarea忽略IE7中父元素的宽度

我在表中有以下textarea:

<table width="300"><tr><td>

<textarea style="width:100%">
longstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstring
</textarea>

</td></tr></table>
Run Code Online (Sandbox Code Playgroud)

在textarea中有一个长字符串,textarea延伸到IE7中的一行中,但在其他浏览器中保留了300px的宽度.

关于如何在IE中修复此问题的任何想法?

html css internet-explorer-7

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

你使用什么代码片段编辑器?

我的一部分"将你的开发生活排除在外,Rob"推动我注意到我没有代码片段库(而且Jeff也做了一个帖子).现在我有一些,但我知道我应该努力创建自己的库来提高我的工作效率.

我开始做的一件事就是让我的代码片段编辑器保持打开状态(Snippy),每当我意识到我正在编写公共代码时,我就停下来为它做一个代码片段.

我只是想知道你们使用的编辑器什么?那里可能会有一个更好的,如果我错过了,我也想参与其中!:)

.net visual-studio code-snippets

9
推荐指数
3
解决办法
6376
查看次数

Web方法返回值的优秀设计模式是什么?

在编写Web服务时,如何构建返回值?你如何处理错误条件(预期和意外的错误)?如果你返回像int这样简单的东西,你只是将它返回,或者将它嵌入到一个更复杂的对象中吗?一个服务中的所有Web方法是返回单个类的实例,还是为每个方法创建自定义返回值类?

soap wsdl web-services

9
推荐指数
1
解决办法
1396
查看次数