Tag: .net

.NET的HL7对象模型

搜索将提供对象模型,解析,validation等的库或框架 我们的想法是能够启动hl7 v2或v3类型的新对象。 然后可能将其称为消息类型ORU_R01或ADT,或ORM。 如果我们能做这样的事情,生活就不会很好: HL7V2 myMessage = new HL7V2(); myMessage.Type = V2MsgTypes.ORU_R01; myMessage.TryParse(someHL7_string); if (myMessage.IsValid) { //do some work //maybe access the PID segment if (myMessage.Patient.Names.FamilyName ==”Johnson”) { //do more work } }

如何构建PCSC智能卡读卡器“友好名称”?

我使用WinSCard列出所有读者,这给我一个这样的列表: ASK RDR4x7 0 SCM Microsystems Inc. SCR3320 USB Smart Card Reader 0 SCM Microsystems Inc. SCR3320 USB Smart Card Reader 1 SCM Microsystems Inc. SCR3320 USB Smart Card Reader 2 哪个好,但我不知道哪个名字属于哪个读卡器。 这些名字来自哪里? 他们是如何建造的? 我到目前为止所发现的:在注册表中,有一个HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services键。 在此密钥下,您可以找到与读卡器的“服务”(我通过查询WMI注册表找到)匹配的子项。 例如: SCM Microsystems Inc. SCR3320 USB Smart Card Reader读卡器的服务是SCR3XX2K 。 这个子键( SCR3XX2K )有另一个子键Enum ,它有多个有趣的值: Count :DWORD,连接的读者数量 0 :STRING,硬件设备ID 我想这些是附加到’友好名称’的数字,但我无法弄清楚如何构造名称字符串。 […]

自动更新:这样安全吗?

点网自动更新 我觉得.net缺少一个简单安全的自动更新库,所以我已经实现了一些东西并把它放在这里 。 在任何人考虑使用该库之前,我都热衷于更新过程以获得一些同行评审。 以下是步骤: 客户端软件填充有公钥和URI以进行轮询。 客户端轮询清单文件的URI。 下载清单并使用签名(在单独的“.signature”中)来检查清单是否有效。 从清单中解析待处理更新列表(向用户显示)。 下载安装程序文件,并再次使用相应的“.signature”文件进行validation。 (下载的文件将受ACL保护) 安装程序已运行。 减轻威胁: 清单签名应该可以防止任何恶意下载(“ 地毯式轰炸 ”) 安装程序签名应防止任何MITM攻击发送恶意安装程序 使用ACL保护下载的安装程序应该可以防止任何本地升级攻击。 未减轻的威胁: MITM攻击,攻击者始终报告“没有可用更新”。 (可能使客户端处于易受攻击的版本) 参考文献: 安全的软件更新:令人失望和新的挑战 Black Ops 2008:它是我们所知道的缓存的终点 邪恶将毁灭我们所有人 我错过了什么?

在已运行的控制台应用程序内运行交互式进程,无需打开新窗口

我意识到这看起来像很多其他问题,但我看了几个小时都没看过,我从未找到我需要的真正答案,所以请听我说: 这适用于.NET C#控制台应用程序。 在其中,我想使用Process.Start调用Windows可执行文件,但是在运行时没有打开新的控制台窗口 。 我还希望可执行文件能够输出到控制台并正常响应用户输入。 你怎么做到这一点? 设置ProcessStartInfo.CreateNoWindow或ProcessStartInfo.WindowStyle ? 尝试使输入/输出重定向工作数小时? 编辑: smh ……这与那里的“可能的重复”不同,因为: 这适用于想要在自身内无缝运行Windows命令的控制台应用程序,就好像该命令是控制台应用程序本身的一部分一样。 例如:创建一个新的C#控制台应用程序并使其运行Windows copy命令。 另外,我需要用户能够与正在运行的命令交互 (例如,如果copy询问是否覆盖我希望用户回答),那么隐藏窗口就像这样 ,或者这个可能的答案是禁止的。 我想强调单个 UseShellExecute属性如何解决问题,在这样的答案中没有误导性的绒毛(例如,关于I / O重定向),或者这再次让我浪费时间。

C#是否有例外概述?

我想知道是否有一个包含所有exception类型的列表。 我知道一些例外,但我不知道所有这些例外情况。 有时候我抛出一个Exception,然后我想,也许.NET已经有了一个Exception。 例如,现在我需要一个Exception,表示进程不存在(如文件)。 所以我的问题是:有人知道找到所有例外的清单吗? 我没找到它。

DynamoDB .NET – 删除表中的所有项目

我正在学习如何使用DynamoDB for .net而且我有一个疑问,是否有正确的方法从现有表中删除所有项目?我的意思是,我不想删除表,只是清空它。 我已经阅读了有关批处理的内容,但它们对我没什么帮助。 我有这个 private string DeleteAllFromTable() { string result = string.Empty; try { var request = new BatchWriteItemRequest { RequestItems = new Dictionary<string, List> { { this.Tablename, new List { new WriteRequest { DeleteRequest = new DeleteRequest { Key = new Dictionary() { { “Id”, new AttributeValue { S = “a” } } […]

.NET winforms应用程序在不使用ClickOnce的情况下更新自身的最佳方法是什么?

由于技术原因,我无法使用ClickOnce自动更新我的.NET应用程序及其程序集。 在.NET中处理自动更新的最佳方法是什么?

C#:所以如果静态类是存储全局状态信息的不良做法,那么提供相同方便性的好方法是什么?

我一直注意到静态类在用于存储全局信息方面在SO上获得了很多不好的代表。 (而且全局变量一般被嘲笑)我只想知道下面的例子有什么好的选择…… 我正在开发一个WPF应用程序,并且根据当前登录用户的ID过滤了从我的数据库中检索到的数据的许多视图。 同样,我的应用中的某些点应该只能被视为“管理员”的用户访问。 我目前正在静态类中存储loggedInUserId和isAdmin bool。 我的应用程序的各个部分需要这些信息,我想知道为什么它在这种情况下不理想,以及替代品是什么。 起床和跑步似乎非常方便。 我唯一可以想到的替代方法是使用IoC容器将Singleton实例注入需要此全局信息的类中,然后类可以通过其接口与之通信。 然而,这是否过度/导致我陷入分析瘫痪? 提前感谢您的任何见解。 更新 因此,我倾向于通过IoC进行dependency injection,因为它可以更好地提供可测试性,因为我可以交换一个服务,如果需要,可以使用模拟提供“全局”信息。 我想剩下的是注入的对象是单身还是静态。 🙂 如果等待查看是否还有其他讨论,请问问Mark的答案。 我不认为这是正确的方式。 我只是想看到一些可以启发我的讨论,因为似乎有很多“这是坏的”,“这是坏的”,在没有任何建设性替代方案的情况下对某些类似问题的陈述。 更新#2所以我选择了罗伯特的答案,因为它是一个很好的选择(我认为替代方案是一个奇怪的词,可能是One True Way,因为它是内置于框架中)。 它并没有强迫我创建一个静态类/单例(尽管它是线程静态的)。 唯一让我感到好奇的是,如果我必须存储的“全局”数据与用户身份validation无关,那将如何处理。

使用Reactive Extensions(Rx)实现套接字编程?

使用Rx编写GetMessages函数的最简洁方法是什么: static void Main() { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var messages = GetMessages(socket, IPAddress.Loopback, 4000); messages.Subscribe(x => Console.WriteLine(x)); Console.ReadKey(); } static IObservable GetMessages(Socket socket, IPAddress addr, int port) { var whenConnect = Observable.FromAsyncPattern(socket.BeginConnect, socket.EndConnect)(addr, port); // now will receive a stream of messages // each message is prefixed with an 4 bytes/Int32 […]

AutomationElement使用Inspect.exe显示,但在使用UIAutomationCore.dll或System.Windows.Automation时不显示

TL; DR :我做错了导致工作区窗格显示在Inspect Objects中但未显示在我的自定义代码中? 我正在尝试为第三方程序编写一些UI自动化。 我正在使用Windows SDK附带的Inspect.exe ,我已经尝试过System.Windows.Automation和直接COM调用 (使用来自UIA Verify的包装器库)。 Process[] processes = Process.GetProcessesByName(“Redacted Client”); if (processes.Length == 0) throw new Exception(“Could not find \”Redacted Client\” process”); PropertyCondition parentFileCond = new PropertyCondition(AutomationElement.ProcessIdProperty, processes[0].Id); PropertyCondition workspaceCond = new PropertyCondition(AutomationElement.NameProperty, “Workspace”, PropertyConditionFlags.IgnoreCase); PropertyCondition documentCond = new PropertyCondition(AutomationElement.NameProperty, “Untitled3”, PropertyConditionFlags.IgnoreCase); var parentElement = AutomationElement.RootElement.FindFirst(TreeScope.Children, parentFileCond); var workspaceElement = […]