小编Bra*_*ann的帖子

如何在.net中找到NumLock,CapsLock和ScrollLock的状态?

如何在.net中找到NumLock,CapsLock和ScrollLock键的状态?

.net c# capslock

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

.NET中是否有SortedList <T>类?

我需要根据它们的内容对某些对象进行排序(实际上根据它们的一个属性,这不是关键,可能在不同对象之间重复).

.NET提供了两个类(SortedDictionarySortedList),并且都使用二叉树实现.它们之间的唯一区别是

  • SortedList比SortedDictionary使用更少的内存.
  • 对于未排序的数据,SortedDictionary具有更快的插入和删除操作,O(log n)而不是SortedList的O(n).
  • 如果列表是从排序数据中一次性填充的,则SortedList比SortedDictionary快.

我可以使用List实现我想要的,然后将其Sort()方法与IComparer的自定义实现一起使用,但它不会节省时间,因为每次我想要插入一个新对象时我会对整个List进行排序,而一个好的SortedList只会将项目插入正确的位置.

我需要的是一个带有RefreshPosition(int索引)的SortedList类,它只移动已更改(或插入)的对象,而不是每次内部对象更改时都使用整个列表.

我错过了一些明显的东西吗

.net c# sorting collections

26
推荐指数
2
解决办法
6822
查看次数

什么可以导致重置一个callstack(我正在使用"throw",而不是"throw ex")

我一直认为"throw"和"throw ex"之间的区别在于单独抛出并没有重置异常的堆栈跟踪.

不幸的是,这不是我正在经历的行为; 这是一个复制我的问题的简单示例:

using System;
using System.Text;

namespace testthrow2
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                try
                {
                    throw new Exception("line 14");
                }
                catch (Exception)
                {
                    throw; // line 18
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());

            }
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望这段代码能够从第14行开始打印一个callstack; 然而,callstack从第18行开始.当然,它在样本中没什么大不了的,但在我的实际应用中,丢失初始错误信息是非常痛苦的.

我错过了一些明显的东西吗 有没有其他方法来实现我想要的(即重新抛出异常而不丢失堆栈信息?)

我正在使用.net 3.5

.net c# exception-handling exception stack-trace

25
推荐指数
2
解决办法
7102
查看次数

如何获取WCF远程端点的IP地址?

有没有办法获得WCF连接的远程IP地址?

我想它没有内置到WCF框架中的原因是WCF可以使用非TCP/IP绑定,因此IP地址并不总是有意义的.

但是,这些信息对于所有广泛使用的绑定都是有意义的(据我所知:BasicHttp,DualHttp,WSHttp和NetTcp).

IP地址可能是使用反射访问的,但我宁愿找到一种记录的方法来获取它而不是入侵框架类.

我已经在Google上搜索了这个问题,似乎很多人在没有找到合适的解决方案的情况下遇到过这种情况(通常的答案是依赖于邮件头,但这意味着信任客户端提供其真实的IP地址,如果您出于安全原因要记录IP地址,则不能选择此选项)

.net wcf wcf-binding

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

我需要什么SSL证书?

我正在开发将使用clickonce(在网站foo.com上)部署的软件,然后使用带有加密传输的WCF连接到我的服务器

所以我需要一个SSL证书,它将:

  • 确定我的foo.com网站确实是我的网站
  • 使用clickonce识别我部署的exe是真实的
  • 确定我的应用服务器确实是我的应用服务器.

我还希望我的SSL证书由公众所知的权限签名(即,firefox或windows不会要求用户首先安装权限证书!)

你会买什么SSL证书?

我浏览过Verisign网站,"安全网站EV"证书每年花费1150欧元("Pro"版本似乎只对旧版浏览器的兼容性有用)

ssl ssl-certificate

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

为什么我不应该使用Process.GetCurrentProcess().Kill()来退出我的WinForm应用程序?

现在,当用户想要退出我的应用程序时,我会做一些我必须做的事情(即断开与服务器的连接,保存用户数据......)然后我执行以下操作:

  • 使用布尔值退出所有主循环
  • 中止仍在运行的线程(通常是我的服务器轮询线程)
  • 请致电Application.Exit();

这需要几秒钟才能退出,并没有真正的用途(一切都已保存在服务器上,所以我真的不在乎那里发生了什么)

如果我使用它,我立即终止,没有任何我能想到的缺点:

 System.Diagnostics.Process.GetCurrentProcess().Kill();
Run Code Online (Sandbox Code Playgroud)

为什么我不会终止我的进程并让CLR放弃AppDomain?

我知道小心处理你的共享资源(IO文件处理程序等)很重要(所以请不要回答:)),但一旦完成,是否真的有理由干净地退出我的应用程序?

.net termination

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

Vista环境变量中%TMP%和%TEMP%之间有什么区别?

在我的计算机上,环境变量%TMP%和%TEMP%都指向同一位置.

那些仅用于向后兼容性问题,还是存在真正的差异?

windows variables temp

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

如何确定C#中是否存在隐式转换?

我有两种类型,T和U,我想知道是否从T到U定义了隐式强制转换运算符.

我知道IsAssignableFrom的存在,这不是我正在寻找的,因为它不涉及隐式转换.

一些谷歌搜索引导我到这个解决方案,但在作者自己的话这是丑陋的代码(它试图隐式转换,如果有异常则返回false,否则为true)

似乎测试是否存在具有正确签名的op_Implicit方法将不适用于基本类型.

是否有更简洁的方法来确定隐式转换运算符的存在?

.net c# reflection casting implicit-conversion

22
推荐指数
3
解决办法
2212
查看次数

你会如何设计一个好的搜索UI?

我想为我的用户提供一个"高级"搜索引擎.我基本上有很多搜索条件可供选择:

  • 一些非常简单/常见,并将在很大程度上使用(即时间段,项目ID)
  • 有些人不那么主流
  • 有些不会被大量使用,但我仍然想提供它们

总的来说,我有大约30多个标准可供选择

结果是我在网格中显示的数据集.

我在互联网上寻找灵感,甚至谷歌似乎也没有一个很好的高级搜索解决方案.

我过去曾设计过这种工具,虽然用户最终能够非常有效地使用它,但我对结果并不满意.

  • 您是否认为搜索面板应始终可见(即显示在我的结果网格顶部)或以单独的形式提供(这样可以让我为所有控件使用更多位置)

  • 您是否认为最好显示所有搜索条件,或者如果用户希望查看/使用更多条件,则让用户点击"高级"

  • 你会如何组织标准?按使用频率,或者更确切地说按区域(即与用户,地点,时间等有关的标准)

  • 我应该在哪里放置"搜索"按钮?旁边是更常见的搜索控件,还是底部或两者?

更一般地说,您是否有关于如何设计一个漂亮的搜索UI的技巧?在这种"高级"搜索引擎中,您通常会错过哪些功能?

usability user-interface search-engine

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

您是否将数据库静态数据放入源代码控制中?怎么样?

我正在使用SQL-Server 2008和Visual Studio Database Edition.

使用此设置,保持模式同步非常简单.基本上,有一个"比较模式"工具,允许我将两个数据库和/或数据库模式的模式与源控制的创建脚本文件夹同步.

但是,就数据而言,情况不太清楚,数据可能有三种不同:

  • 代码中引用的静态数据.典型示例:我的用户可以更改其设置,并将其配置存储在服务器上.但是,如果用户没有覆盖它,则每个设置都有一个系统范围的默认值.包含这些默认设置的表随着向程序添加更多选项而增长.这意味着在签入新功能/选项时,通常也会在数据库中创建系统范围的默认设置.

  • 静态数据.例如.填充下拉列表的产品列表.该程序不依赖列表中特定产品的存在来工作.例如,这可以是在部署程序的新"unicode版本"时应该在生产中部署的unicode编码产品的列表.

  • 其他数据,即其他所有数据(日志,用户帐户,用户数据等)

我觉得我的第三个项目不应该是源代码控制的(当然,它应该定期备份)

但关于静态数据,我想知道该怎么做.

  • 我应该将插入脚本附加到创建脚本吗?或者可以使用单独的脚本?

  • 我(作为开发人员)如何警告执行部署的人员应该执行insert语句?

  • 我应该区分我的两种数据吗?(第一个通常由开发人员创建,而第二个通常由非开发人员创建)

您如何管理数据库静态数据?

sql version-control

18
推荐指数
2
解决办法
4345
查看次数