小编Ian*_*oyd的帖子

.NET:如何将异常转换为字符串?

抛出异常时(在IDE中进行调试时),我有机会查看异常的详细信息:

在此输入图像描述

但在代码中,如果我打电话,exception.ToString()我不会看到这些有用的细节:

System.Data.SqlClient.SqlException (0x80131904): Could not find stored procedure 'FetchActiveUsers'.
  [...snip stack trace...]
Run Code Online (Sandbox Code Playgroud)

但Visual Studio有一些魔力可以将异常复制到剪贴板:

在此输入图像描述

这给出了有用的细节:

System.Data.SqlClient.SqlException was unhandled by user code
  Message=Could not find stored procedure 'FetchActiveUsers'.
  Source=.Net SqlClient Data Provider
  ErrorCode=-2146232060
  Class=16
  LineNumber=1
  Number=2812
  Procedure=""
  Server=vader
  State=62
  StackTrace:
       [...snip stack trace...]
  InnerException:
Run Code Online (Sandbox Code Playgroud)

好吧,我想要那个!

会是什么内容:

String ExceptionToString(Exception ex)
{ 
    //todo: Write useful routine
    return ex.ToString();
}
Run Code Online (Sandbox Code Playgroud)

这可以实现同样的魔力.是否在某处内置了.NET功能?是否Exception有一个秘密的地方的方法将其转换为字符串?

.net c# exception tostring

51
推荐指数
5
解决办法
3万
查看次数

在jQuery中通过部分ID查找元素?

我的页面上有一个元素,我只知道它的一部分id,例如_moComments_:

id="MainContent_listSelectedDays_listDayBanks_0_moComments_0"
Run Code Online (Sandbox Code Playgroud)

我如何通过部分id找到一个元素(例如使用jQuery)?

例如(jsFiddle):

<input type="text" id="MainContent_listSelectedDays_listDayBanks_0_moComments_0">
Run Code Online (Sandbox Code Playgroud)

用脚本

$('[id=_moComments_]').val("Found it");
Run Code Online (Sandbox Code Playgroud)

奖金阅读

jquery

51
推荐指数
1
解决办法
8万
查看次数

如何将List <object>转换为List <SomethingElse>

我怎样才能施放List<object>List<SomethingElse>

(已知来自哪里SomethingElseobject)


奖金Chatter

铸造清单:

List<Object> first = ...;

List<SomethingElse> second = (List<SomethingElse>)first;
Run Code Online (Sandbox Code Playgroud)

不起作用:

无法将类型'System.Collections.Generic.List'转换为'System.Collections.Generic.List'

铸造清单:

List<SomethingElse> second = first.Cast<SomethingElse>();
Run Code Online (Sandbox Code Playgroud)

不起作用:

不能将类型'System.Collections.Generic.List'隐式转换为'System.Collections.Generic.List'

我实际上并不需要完整的List<T>对象,只是一个ICollection<T>意志:

ICollection<SomethingElse> second = first;
ICollection<SomethingElse> second = (ICollection<SomethingElse>)first;
ICollection<SomethingElse> second = first.Cast<SomethingElse>();
Run Code Online (Sandbox Code Playgroud)

不工作.

c# generics

50
推荐指数
3
解决办法
6万
查看次数

如何在表单上双重缓冲.NET控件?

如何DoubleBuffered在遭受闪烁的表单上设置控件的受保护属性?

c# doublebuffered flicker winforms

48
推荐指数
8
解决办法
6万
查看次数

Delphi:什么是Application.Handle?

什么是TApplication.Handle

  • 它从何而来?
  • 它为什么存在?
  • 最重要的是:为什么所有表单都将它作为父窗口句柄?

德尔福帮助说:

TApplication.Handle

提供对应用程序主窗体(窗口)的窗口句柄的访问.

property Handle: HWND;
Run Code Online (Sandbox Code Playgroud)

描述

在调用需要父窗口句柄的Windows API函数时使用句柄.例如,显示其自己的顶级弹出窗口的DLL需要父窗口才能在应用程序中显示其窗口.使用Handle属性使这些窗口成为应用程序的一部分,以便使应用程序最小化,恢复,启用和禁用它们.

如果我专注于" 应用程序主窗体的窗口句柄 "这个词,我认为它是指应用程序主窗体的窗口句柄,那么我可以比较:

  • "应用程序主窗体的窗口句柄",用
  • 窗户把手MainFormApplication

但他们不一样:

Application.MainForm.Handle: 11473728
Application.Handle: 11079574
Run Code Online (Sandbox Code Playgroud)

那是什么Application.Handle

  • 它从何而来?
  • Windows®窗口处理的是什么?
  • 如果的的的Windows®窗口句柄ApplicationMainForm,那么他们为什么不匹配?
  • 如果它不是Application 's 的窗口句柄MainForm,那么它是什么?
  • 更重要的是:为什么它是每种形式的最终父母所有者?
  • 最重要的是:如果我试图让一个表格无主义(因此我可以出现在TaskBar上),或者尝试使用像IProgressDialog这样的东西,为什么一切都变得混乱

我真正要问的是:Application.Handle存在的设计原理是什么?如果我能理解为什么,应该如何变得明显.


通过20个问题的游戏更新理解:

在谈到通过让它的主人在任务栏上出现一个窗口的解决方案时null,Peter Below在2000年说:

这可能会导致从次要形式显示的模态形式出现一些问题.

如果用户在模态表单启动时从应用程序切换,然后返回到显示它的表单,则模式表单可能隐藏在表单下方.可以通过确保模态形式是父级来处理这个问题[原文如此; 他的意思是拥有]到表明它的形式(使用 params.WndParent如上)

但是对于Dialogs单元和异常 …

delphi delphi-5 design-rationale

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

ASP.NET:如何从处理程序访问Session?

我正在尝试一些值存储在会话处理程序页面,我做一个重定向到一个页面的WebForms,这将拿起之前会话值和预填的WebForm:

public class Handler : IHttpHandler
{
   public void ProcessRequest(HttpContext context)
   {
      ...
      context.Session["StackOverflow"] = "overflowing";
      context.Response.Redirect("~/AnotherPage.aspx");
      ...
   }
   ...
 }
Run Code Online (Sandbox Code Playgroud)

除了context.Sessionobject是null.

如何从处理程序访问会话状态?

asp.net session session-state handler ihttphandler

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

如何确定Windows中的扇区大小

如何在Windows 7中确定物理扇区大小(例如,如果我有一个具有4,096字节扇区的高级格式驱动器而不是传统的512字节扇区)?

我知道通过单击文件并获取属性我们可以找到NTFS 群集大小,但这与硬盘驱动器的扇区大小不同.

注意:我们询问Windows 7,因为它(和Windows Vista SP1)了解4096高级格式化硬盘的存在.

sector hard-drive windows-7

47
推荐指数
7
解决办法
15万
查看次数

如何部署SQL Server Compact Edition 4.0?

我如何部署Microsoft SQL Server Compact 4.0


SQL Server Compact Edition(目前版本为4.0)是:

免费的嵌入式数据库,软件开发人员可以使用它来构建Windows桌面应用程序.它占用空间小,支持在应用程序文件夹中私有部署其二进制文件.

但是你如何实际部署呢?

问题是除非已注册,否则无法使用ADO OLEdb提供程序.注册OLEdb提供程序必须以管理员身份完成.这意味着SQL Server Compact版本将失败,而非管理员用户.

SQL Server Compact 4.0附带一个redist_enu.txt文件:

列出的.exe文件每个都将其附带的组件安装到目标计算机上的特定位置.这有助于确保可维护性和技术支持.这些.exe文件中包含的.dll文件也可以在此redist.txt中单独使用.但是,这些单独的.dll的分发可能会导致可维护性问题.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=94589

通过BreadCrumb进行私有部署检测:不支持通过Assembly.LoadFrom(),.local文件或使用DLL/COM重定向策略显式加载本机堆栈和显式加载SQL Server Compact Assembly,可能导致可维护性问题.有关详细信息,请参阅http://support.microsoft.com/kb/835322http://msdn2.microsoft.com/en-us/library/aa375142.aspx

Microsoft SQL Server Compact 4.0

SSCERuntime_x86-ENU.exe
SSCERuntime_x86-DEU.exe
SSCERuntime_x86-FRA.exe
SSCERuntime_x86-
JPN.exe SSCERuntime_x86-RUS.exe
SSCERuntime_x86-ESN.exe
SSCERuntime_x86-ITA.exe
SSCERuntime_x86-KOR.exe
SSCERuntime_x86-CHT.exe
SSCERuntime_x86-CHS.exe
SSCERuntime_x64-ENU.exe
SSCERuntime_x64-DEU.exe
SSCERuntime_x64-FRA.exe
SSCERuntime_x64-
JPN.exe SSCERuntime_x64-RUS.exe
SSCERuntime_x64-ESN.exe
SSCERuntime_x64-ITA.exe
SSCERuntime_x64-KOR.exe
SSCERuntime_x64-CHT.exe
SSCERuntime_x64-CHS.exe
sqlcese40.dll
sqlceqp40.dll …

deployment ado xcopy sql-server-2008 sql-server-ce

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

合并两个IEnumerable <T>

我有两个IEnumerable<T>.

一个人充满了后备元素.这个将始终包含最多的元素.另一个将根据某些参数填充,并且可能包含更少的元素.如果第二个元素不存在,我需要用第一个元素填充它.

这段代码完成了这项工作,但对我来说效率低下并要求我将IEnumerables转换为ILists或使用临时列表Person实现IEquatable

IEnumerable<Person> fallBack = Repository.GetPersons();
IList<Person> translated = Repository.GetPersons(language).ToList();

foreach (Person person in fallBack)
{
    if (!translated.Any(p=>p.equals(person)))
        translated.add(person);  
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c# merge

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

如何向Chrome添加自定义Accept-Languages以进行伪定位测试?

我正在测试一个网站的伪本地化.

我可以将Internet Explorer配置为具有自定义接受语言:

  1. 单击工具,Internet选项
  2. 常规选项卡上单击语言
  3. 语言首选项对话框中单击添加.
  4. 输入用户定义的语言qps-ploc(即Pseudo(Base)语言环境)
  5. 单击确定

在此输入图像描述

现在,当Internet Explorer发出http请求时,接受语言将引导qpc-ploc:

GET https://stackoverflow.com/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Accept-Language: qps-ploc,en-US;q=0.5
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: stackoverflow.com
Run Code Online (Sandbox Code Playgroud)

如何对Chrome执行相同的更改?到Firefox?


更新

还应注意,Internet Explorer 尊重我的Windows首选项.我的Windows配置为使用 …

localization google-chrome internationalization pseudolocalization http-accept-language

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