如何生成LONG guid?

我想生成一个很长的UUID – 类似于gmail使用的会话密钥。 它应至少为256个字符且不超过512个。它可以包含所有字母数字字符和一些特殊字符(键盘上function键下方的字符)。 这已经完成了还是有样品? C ++或C# 更新:GUID是不够的。 我们已经看到了碰撞,需要解决这个问题。 512是迄今为止的最大值,因为它会阻止我们更改已经发货的东西。 更新2:对于那些坚持GUID独特性的人来说,如果有人想猜测你的下一个会话ID,他们就不必计算下一个万亿年的组合。 他们所要做的只是限制时间因素,它们将在数小时内完成。

C#优于VB

什么在C#.NET中使它更适合某些项目而不是VB.NET? 性能?,function?,库/组件?,声誉?,可靠性? 可维护性?,轻松? 基本上C#可以做任何事情,使用VB是不可能的,反之亦然。 在为项目选择C#/ VB时您必须考虑的事项 。

如何从另一个Windows应用程序获取Chrome 28的当前URL?

在Chrome V27之前,您可以枚举Chrome子窗口控件以进入编辑字段并从那里读取字符串值以获取当前打开的URL。 不幸的是,除了主窗口(Chrome_WidgetWin_1)和网页标签(Chrome_RenderWidgetHostHWND)之外,Chrome 28已经切换到新的渲染引擎(Blink)并且不再使用Windows控件。 如果有人能指出从另一个(Win32)应用程序获取当前打开的Chrome URL的替代方法,我将不胜感激。

WPF – 将Bitmap转换为ImageSource

我需要将System.Drawing.Bitmap转换为System.Windows.Media.ImageSource类,以便将其绑定到WizardPage(扩展WPF工具包)的HeaderImage控件中。 位图设置为我编写的程序集的资源。 它被引用如下: public Bitmap GetBitmap { get { Bitmap bitmap = new Bitmap(Resources.my_banner); return bitmap; } } public ImageSource HeaderBitmap { get { ImageSourceConverter c = new ImageSourceConverter(); return (ImageSource) c.ConvertFrom(GetBitmap); } } 这个转换器是我在这里找到的: http : //www.codeproject.com/Questions/621920/How-to-convert-Bitmap-to-ImageSource我得到一个NullReferenceException return (ImageSource) c.ConvertFrom(Resources.my_banner); 如何初始化ImageSource以避免此exception? 或者还有另一种方式吗? 我希望之后使用它: <xctk:WizardPage x:Name="StartPage" Height="500" Width="700" HeaderImage="{Binding HeaderBitmap}" Enter="StartPage_OnEnter" 提前感谢您的任何答案。

获取当前目录的这些方法有什么区别?

它们都给出相同的结果,即包含正在执行的exe的文件夹的位置。 我确信.net BCL中没有好的或坏的方法。 它们在特定情况下都是合适的。 哪一个适合哪种情况? var appBaseDir = AppDomain.CurrentDomain.BaseDirectory; var currentDir = Environment.CurrentDirectory; var dir = Directory.GetCurrentDirectory(); var path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

将JPEG图像转换为字节数组 – COMexception

使用C#,我正在尝试从磁盘加载JPEG文件并将其转换为字节数组。 到目前为止,我有这个代码: static void Main(string[] args) { System.Windows.Media.Imaging.BitmapFrame bitmapFrame; using (var fs = new System.IO.FileStream(@”C:\Lenna.jpg”, FileMode.Open)) { bitmapFrame = BitmapFrame.Create(fs); } System.Windows.Media.Imaging.BitmapEncoder encoder = new System.Windows.Media.Imaging.JpegBitmapEncoder(); encoder.Frames.Add(bitmapFrame); byte[] myBytes; using (var memoryStream = new System.IO.MemoryStream()) { encoder.Save(memoryStream); // Line ARGH // mission accomplished if myBytes is populated myBytes = memoryStream.ToArray(); } } 但是,执行ARGH行给我的信息是: COMException未处理。 句柄无效。 […]

为什么C#编译器在使用LINQ方法时会创建私有DisplayClass Any()以及如何避免它?

我有这个代码(整个代码并不重要,但可以在这个链接上看到): internal static class PlayCardActionValidator { public static bool CanPlayCard(…) { // … var hasBigger = playerCards.Any( c => c.Suit == otherPlayerCard.Suit && c.GetValue() > otherPlayerCard.GetValue()); // … } } 例如,在反编译器(ILSpy)中打开代码之后,我注意到C#编译器存在新创建的类c__DisplayClass0_0 : 如果此代码对系统性能不重要,对我来说这不是问题。 这个方法被调用数百万次,垃圾收集器正在清理这些c__DisplayClass0_0实例,这会降低性能: 在使用Any方法时,如何避免创建此类(他的实例和垃圾收集)? 为什么C#编译器创建这个类,我可以使用任何替代的Any()吗?

在执行长时间运行的数据库任务时处理Web服务超时

我们的产品之一的架构是典型的3层解决方案: C#客户端 WCF Web服务 SQL Server数据库 客户端从Web服务请求信息。 Web服务命中数据库以获取信息并将其返回给客户端。 这是问题所在。 其中一些查询可能需要很长时间,而且我们不知道哪些查询会很慢。 我们知道一些通常比其他人慢,但即使是最简单的请求,如果有足够的数据,也会很慢。 有时使用查询或运行大量数据的报告。 只有在大量数据减慢之前,才能优化查询。 如果数据库中的查询在SQL Server中达到最大查询超时,则数据库查询将终止,并且Web服务会向客户端返回错误。 这是理解的。 我们可以处理这些错误。 客户端正在等待Web服务调用完成。 如果数据库调用需要很长时间,则客户端可能会在调用Web服务时超时。 客户端放弃,但数据库请求继续处理。 此时,客户端与数据库不同步。 数据库调用可能成功也可能不成功。 可能有错误。 客户永远不会知道。 在某些情况下,我们不希望我们的用户发起另一个请求,如果完成上一个请求,可能会导致无效状态。 我很想知道其他人是如何处理这个问题的。 您使用了哪些策略来防止Web服务超时影响数据库调用? 我能提出的最好的想法包括在某个地方创建一个实际的数据库层 – 在Web服务内部,附加到消息队列 – 某些东西。 将每个查询卸载到另一个进程似乎过多。 (然后,我们并不总是知道给定的请求是快还是慢。) 如果我们可以将发出HTTP请求的行为与启动和运行数据库进程的行为分开,那就太好了。 我已经在之前的公司看到过使用自定义服务器,但它使用的是直接套接字通信,而我宁愿避免使用某些自定义应用程序替换Web服务。 请注意,鉴于我们处理的数据量,我们都在进行查询优化。 查询优化,索引等只会在数据量很大时才将您带到目前为止。 有时事情需要很长时间。

Asp MVC 4创建类似于Html.BeginForm的自定义html辅助方法

我有以下html: Available Languages: 我想制作一个自定义的html助手并像这样使用它(类似于Html.BeginForm ) @Html.BeginView() { Available Languages: } 我开始制作我的助手方法 public static class BeginViewHelper { public static MvcHtmlString BeginView(this HtmlHelper helper, string viewId) { var parentDiv = new TagBuilder(“div”); parentDiv.MergeAttribute(“data-bind”, “preventBinding: true”); return new MvcHtmlString(); } } 我阅读了如何制作基本的html助手,但我看到的例子并未向我提供如何在我的情况下制作它的信息。 我是asp mvc的新手,非常感谢每一位帮助。 更新2: 显然我错过了一些东西。 我在我的观点中称之为: @Html.BeginView() { test } 一切似乎很好,甚至有智能感知。 但浏览器中的输出如下: Omega.UI.WebMvc.Helpers.BeginViewHelper+MyView { test } 这是我的帮手方法: […]

如何打开第二张表格?

我的项目中有Form1和Form2。 Form2只是一个Form1设置的表单。 从Form1打开Form2的命令是什么,请关闭它的命令是什么?