抛出异常时(在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有一个秘密的地方的方法将其转换为字符串?
我的页面上有一个元素,我只知道它的一部分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)
奖金阅读
我怎样才能施放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)
不工作.
如何DoubleBuffered在遭受闪烁的表单上设置控件的受保护属性?
什么是TApplication.Handle?
德尔福帮助说:
TApplication.Handle
提供对应用程序主窗体(窗口)的窗口句柄的访问.
Run Code Online (Sandbox Code Playgroud)property Handle: HWND;描述
在调用需要父窗口句柄的Windows API函数时使用句柄.例如,显示其自己的顶级弹出窗口的DLL需要父窗口才能在应用程序中显示其窗口.使用Handle属性使这些窗口成为应用程序的一部分,以便使应用程序最小化,恢复,启用和禁用它们.
如果我专注于" 应用程序主窗体的窗口句柄 "这个词,我认为它是指应用程序主窗体的窗口句柄,那么我可以比较:
MainForm的Application但他们不一样:
Application.MainForm.Handle: 11473728
Application.Handle: 11079574
Run Code Online (Sandbox Code Playgroud)
那是什么Application.Handle?
Application的MainForm,那么他们为什么不匹配?Application 's 的窗口句柄MainForm,那么它是什么?我真正要问的是:Application.Handle存在的设计原理是什么?如果我能理解为什么,应该如何变得明显.
通过20个问题的游戏更新理解:
在谈到通过让它的主人在任务栏上出现一个窗口的解决方案时null,Peter Below在2000年说:
这可能会导致从次要形式显示的模态形式出现一些问题.
如果用户在模态表单启动时从应用程序切换,然后返回到显示它的表单,则模式表单可能隐藏在表单下方.可以通过确保模态形式是父级来处理这个问题[原文如此; 他的意思是拥有]到表明它的形式(使用
params.WndParent如上)但是对于
Dialogs单元和异常 …
我正在尝试一些值存储在会话从处理程序页面,我做一个重定向到一个页面的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.
如何从处理程序访问会话状态?
如何在Windows 7中确定物理扇区大小(例如,如果我有一个具有4,096字节扇区的高级格式驱动器而不是传统的512字节扇区)?
我知道通过单击文件并获取属性我们可以找到NTFS 群集大小,但这与硬盘驱动器的扇区大小不同.
注意:我们询问Windows 7,因为它(和Windows Vista SP1)了解4096高级格式化硬盘的存在.
我如何部署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/835322和http://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 …
我有两个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)
有什么建议?
我正在测试一个网站的伪本地化.
我可以将Internet Explorer配置为具有自定义接受语言:
qps-ploc(即Pseudo(Base)语言环境)
现在,当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