Tag: .net 4.0

为什么.NET Framework不使用无符号数据类型?

可能重复: 为什么Array.Length是int,而不是uint 它背后有一个原因.NET Framework不使用无符号数据类型吗? 我不应该在我的代码中采用它们,但是例如,List 的Count属性是一个int。 你不能有负数,所以为什么不把它定义为uint? 即使我知道计数不能为负,我应该只使用int吗?

由于某种原因,combobox是相互关联的

我有以下代码来填充3个combobox: private void PopulateDDLs() { SqlConnection connection; SqlCommand command; SqlDataReader reader; DataTable dt; using (connection = new SqlConnection(“connection string here”)) { using (command = new SqlCommand(“sql query here”, connection)) { connection.Open(); using (reader = command.ExecuteReader()) { dt = new DataTable(); dt.Load(reader); ddl1.ValueMember = “col1”; ddl1.DisplayMember = “col2”; ddl1.DataSource = dt; ddl2.ValueMember = “col1”; ddl2.DisplayMember = […]

在Root中插入证书(带私钥),LocalMachine证书存储在.NET 4中失败

我在localmachine的根证书存储中插入带有私钥的新CA证书时遇到问题。 这是发生的事情: //This doesn’t help either. new StorePermission (PermissionState.Unrestricted) { Flags = StorePermissionFlags.AddToStore }.Assert(); var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine); privkey.PersistKeyInCsp = true; //This shouldn’t be necessary doesn’t make a difference what so ever. RSACryptoServiceProvider.UseMachineKeyStore = true; cert.PrivateKey = privkey; store.Open (OpenFlags.MaxAllowed); store.Add (cert); store.Close (); 证书被插入,它看起来都很花哨:(见!) 注意:据说它有私钥。 所以你会说用FindPrivateKey可以找到它 C:\Users\Administrator\Desktop>FindPrivateKey.exe Root LocalMachine -t “54 11 […]

获取进程的PID由Process.start()启动

我正在使用此代码启动可执行文件: Process proc = new Process(); proc.StartInfo.FileName = executablePath; proc.Start(); proc.WaitForInputIdle(); 在这个调用proc.Id它给了我一些整数,这不是真正的进程ID。 在任务管理器中,此进程还有另一个ID,我也使用MS UI Automation访问此应用程序,该应用程序也返回与任务管理器中相同的ID。 所以我的问题是如何获得启动过程的真实进程ID? UPDATE 我发现在Windows 7上它工作正常并返回正确的ID,但不是在Windows XP上。 可能是什么原因? 情景 该应用程序的场景如下。 我有一个正在运行的嵌入式HTTP服务器,它不是由我实现的( 这里是源代码)。 客户端连接到Web服务器并发送运行程序的请求。 在我的服务器的请求处理程序中,我只是使用Process.start()来启动所请求的应用程序。 作为Web服务器,程序为连接到它的每个客户端会话创建线程(我假设如此,因为我没有写它)。 这可以以某种方式帮助识别问题,因为它只存在于Windows XP X86 Service Pack 3上吗?

使用C#匿名类型

我正在调用一个返回包含ac#Anonymous Type对象的List变量的方法。 例如: List list = new List(); foreach ( Contact c in allContacts ) { list.Add( new { ContactID = c.ContactID, FullName = c.FullName }); } return list; 我如何在我正在处理的代码中引用此类型属性,例如 foreach ( object o in list ) { Console.WriteLine( o.ContactID ); } 我知道我的样本是不可能的,我只是这样说,我需要确切地识别匿名类型的每个属性。 谢谢! 方案 : 不只是其中一个答案是正确的和/或建议一个有效的解决方案。 我最终使用了Greg选项3的答案。 我在.NET 4.0中学到了一些非常有趣的东西!

generics:铸造和价值类型,为什么这是非法的?

为什么这是编译时错误? public TCastTo CastMe(TSource i) { return (TCastTo)i; } 错误: annot将类型’TSource’转换为’TCastTo’ 为什么这是一个运行时错误? public TCastTo CastMe(TSource i) { return (TCastTo)(object)i; } int a = 4; long b = CastMe(a); // InvalidCastException // this contrived example works int aa = 4; int bb = CastMe(aa); // this also works, the problem is limited to value types string […]

TaskCreationOptions.LongRunning选项和ThreadPool

TPL使用任务计划程序来协调任务。 根据官方文档 ,默认任务调度程序使用线程池,但如果出现TaskCreationOptions.LongRunning选项,则它将为该任务创建专用线程(A)。 问题:截至目前,Visual Studio 2010的MSDN文档尚未就绪,当前的在线MSDN尚未最终确定; 有谁知道(A)是真还是假?

DirectoryInfo.EnumerateFiles(…)导致UnauthorizedAccessException(和其他exception)

我最近需要枚举整个文件系统,以查找特定类型的文件以进行审计。 由于对要扫描的文件系统的权限有限,这导致我遇到几个例外。 其中,最流行的是UnauthorizedAccessException以及我的懊恼, PathTooLongException 。 这些通常不是问题,除了它们使IEnumerable无效,使我无法完成扫描。

Json.NET在返回json序列化字符串时添加反斜杠

我试图使用Json.NET将列表序列化为json字符串,但返回字符串中有反斜杠,这反过来又失败了json解析。 var x = from d in entities.Books.ToList() select new { ID = d.ID, BookName = d.BookName }; return JsonConvert.SerializeObject(x.ToList()); 上面的代码返回 “[{\”ID\”:1,\”BookName\”:\”MVC Music Store – Tutorial – v3.0\”},{\”ID\”:2,\”BookName\”:\”Pro.ASP.NET.MVC.3.Framework\”},{\”ID\”:3,\”BookName\”:\”Application Architecture Guide v2\”},{\”ID\”:4,\”BookName\”:\”Gang of Four Design Patterns\”},{\”ID\”:5,\”BookName\”:\”CS4 Pocket Reference\”}]” 它失败了所有JSON解析。 我该如何删除它们。

有没有办法检查unicode文本是否使用某种语言?

我将从需要validation的用户获取文本是一个中文字符。 有什么方法可以检查吗?