Tag: .net

规格模式示例

在阅读了来自LosTechies.com的Chris Missal关于规范模式的一系列博客( 这里和这里 )后,我真的很想找到更完整的例子。 有谁知道我在哪里可以找到一个更加充实的例子,或者可能是一个使用这种模式的开源项目?

如何在WINCE7 C#.net中将结构指针发送到DeviceIoControl API

我正在使用WIN CE平台,在C#.Net中开发Windows窗体。 DeviceIoControl API可以正常使用c ++控制台应用程序中的参数(如下所述)。 nuiouser.h中的PNIC_STATISTICS结构 global declarations : TCHAR PCI1_NAME[] = _T(“PCI\\ManiXX1”); TCHAR *AUB_NAME = NULL; AUB_NAME = PCI1_NAME; pNICStat = (PNIC_STATISTICS)malloc(sizeof(NIC_STATISTICS)) ; pNICStat->ptcDeviceName = AUB_NAME ; //wchar_t* ptcDeviceName DeviceIoControl( hUB94Port, //void* IOCTL_NDISUIO_NIC_STATISTICS, pNICStat, //PNIC_STATISTICS 0, pNICStat, //PNIC_STATISTICS sizeof(NIC_STATISTICS), &dwReturnedBytes, NULL ); 但是我在使用C#.Net CF为WIN-CE7实现相同的问题 我的WIN-CE代码如下: C#中的修改结构: [StructLayout(LayoutKind.Sequential,CharSet = CharSet.Unicode)] public struct __NIC_STAT { ulong […]

如何为多个进程共享SQL Server CE数据库文件(.sdf)?

我在SQL Server CE中有一个数据库。 将不同计算机的多个应用程序连接到数据库时会抛出exception。 这是例外: 存在文件共享冲突。 不同的进程可能正在使用该文件。 exception类型是“SqlCeException”。 这是我的连接字符串: Data Source=\\server\ProductionDB\ProductionControl.sdf;File Mode=Read Write; Max Database Size = 4000 SQL Server CE的版本是3.5 SP2

如何解决事件日志中的.NET 2.0错误报告消息?

我在一个名为EVEMon的开源产品上工作,用C#编写,面向.NET 2.0平台,我有一个用户遇到了我们无法解决的奇怪的.NET崩溃问题。 事件类型:错误 事件源:.NET Runtime 2.0错误报告 活动类别:无 事件ID:5000 日期:2009年4月29日 时间:晚上10:58:10 用户:N / A. 电脑:删除了这个 描述: EventType clr20r3,P1 evemon.exe,P2 1.2.7.1301,P3 49ea37c8,P4 system.windows.forms,P5 2.0.0.0,P6 4889dee7,P7 6cd3,P8 18,P9 system.argumentexception,P10 NIL。 数据: //以上描述的hex表示 应用程序本身崩溃而不显示错误(尽管有error handlingUI),上述消息被复制出Windows事件日志。 最终用户已重新安装.NET并更新到最新版本。 .PDB文件随程序的每个发行版本一起分发,以帮助调试和测试,有问题的用户可以获得正确版本的EVEMon的完整PDB文件。 是否有一种特定的,经过试验和测试的技术来分析和诊断这种类型的崩溃? 如果有的话,有哪些工具和技术可以帮助调试? 特别谢谢 我要特别感谢Steffen Opel,并强调他的答案虽然没有直接回答我提出的问题,但我的代码库解决了更大的问题,即全局error handling缺少一个重要组件。

来自HttpHandler的图片不会在浏览器中缓存

我正在使用IHttpHandler从数据库提供图像。 相关代码在这里: public void ProcessRequest(HttpContext context) { context.Response.ContentType = “image/jpeg”; int imageID; if (int.TryParse(context.Request.QueryString[“id”], out imageID)) { var photo = new CoasterPhoto(imageID); if (photo.CoasterPhotoID == 0) context.Response.StatusCode = 404; else { byte[] imageData = GetImageData(photo); context.Response.OutputStream.Write(imageData, 0, imageData.Length); context.Response.Cache.SetCacheability(HttpCacheability.Public); context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(5)); context.Response.Cache.SetLastModified(photo.SubmitDate); } } else context.Response.StatusCode = 404; } 问题是浏览器不会缓存图像,可能是因为我没有在响应头中指出正确的东西。 我认为HttpCachePolicy属性上的部分调用方法会强制浏览器保留图像,但事实并非如此。 我认为“正确”的事情是让处理程序返回没有图像的304状态代码,对吧? 如何使用IHttpHandler实现这一目标? 编辑: 根据最佳答案,我运行了此代码,它完全解决了问题。 是的,它需要一些重构,但它通常会certificate我所追求的是什么。 […]

如何使用.NET / C#进行强大的SerialPort编程?

我正在编写一个Windows服务,用于与串行磁条读取器和中继板(访问控制系统)进行通信。 在另一个程序通过打开与我的服务相同的串行端口“中断”进程后,我遇到了代码停止工作的问题(我得到IOExceptions)。 部分代码如下: public partial class Service : ServiceBase { Thread threadDoorOpener; public Service() { threadDoorOpener = new Thread(DoorOpener); } public void DoorOpener() { while (true) { SerialPort serialPort = new SerialPort(); Thread.Sleep(1000); string[] ports = SerialPort.GetPortNames(); serialPort.PortName = “COM1”; serialPort.BaudRate = 9600; serialPort.DataBits = 8; serialPort.StopBits = StopBits.One; serialPort.Parity = Parity.None; if (serialPort.IsOpen) serialPort.Close(); […]

如何为加密算法创建加密密钥?

我想使用.Net Security命名空间中提供的加密算法,但是我试图了解如何生成密钥,例如AES算法需要256位,即16字节密钥,以及一些初始化向量,这也是几个字节。 我可以在Key和IV中使用任何值的组合吗? 例如Key和IV中的所有零都有效吗? 我知道算法的细节做了很多xors,所以零不会有任何好处,但这些算法是否有任何限制? 或者我是否必须使用某些程序生成密钥并将其永久保存在某处? 我希望在加密后将数据存储在数据库中,安全配置文件数据,如用户名,密码,电话号码等,密钥将仅供连接字符串中提到的数据库用户使用,并且可供管理员使用。

在c#中屏幕抓取一个windows应用程序

我需要从Windows应用程序中抓取数据以在另一个程序中运行查询。 有谁知道我在.NET中做这个的好起点?

数据绑定POCO属性

是否有任何数据绑定框架(BCL或其他)允许在实现INotifyPropertyChanged和INotifyCollectionChanged 任何两个CLR属性之间进行绑定? 似乎应该可以做这样的事情: var binding = new Binding(); binding.Source = someSourceObject; binding.SourcePath = “Customer.Name”; binding.Target = someTargetObject; binding.TargetPath = “Client.Name”; BindingManager.Bind(binding); someSourceObject和someTargetObject只是实现INotifyPropertyChanged POCO。 但是,我不知道BCL对此有任何支持,并且不确定是否存在允许这样做的现有框架。 更新 :鉴于没有现有的库,我已经自己写了自己的库。 它在这里可用。 谢谢

为什么序列化时会出现“System.StackOverflowException未处理”exception?

我正在尝试序列化以下类: [Serializable()] public class BindingNode : IEnumerable { public BindingNode() { } IEnumerator IEnumerable.GetEnumerator() { throw new NotImplementedException(); } public IEnumerator GetEnumerator() { throw new NotImplementedException(); } public void Add(BindingNode item) { throw new NotImplementedException(); } } 这最初是一个ICollection而不是IEnumerable,但我尽可能多地删除了我的代码,只保留导致错误的原因。 这是发生exception的代码: private void button1_Click(object sender, EventArgs e) { BindingNode node = new BindingNode(); if (saveFileDialog1.ShowDialog() == DialogResult.OK) […]