.NET的规则引擎

我们有业务要求让高级用户编辑保险费率和注册的规则。 我们需要一个web ui,让他们说“这个产品仅适用于人们<55,除非他们来自德克萨斯州并拥有一只贵宾犬”或其他什么。 编辑澄清:保险是疯了。 规则因产品,产品状态和状态而异,并且不断变化。 我们查看了几个规则引擎,但商业规则引擎是100K +,开源代码似乎不是,完成了。 如果我们提前创建规则,Windows Workflow会起作用,但在运行时构建它们似乎需要绕过代码访问安全性。 那太可怕了。 我们难以重新发明这个轮子吗? 对.net有更好的选择吗?

C#:如何通过以某种方式从另一个线程发出信号来强制从主线程“调用”一个方法

对不起长标题,我甚至不知道如何表达问题的方式 我正在使用一个库,它从主线程(是一个C库)的不同上下文运行回调,我在C#中创建了回调,当我被调用时,我想提出一个事件。 但是因为我不知道事件内部会是什么,我想找到一种方法来调用方法而不会出现锁等问题(否则第三方用户将不得不在事件中处理这个问题,非常难看) 有没有办法做到这一点? 我可以完全错误的方式,但我正在考虑winforms方式来处理不同的线程(.Invoke的事情) 否则我可以发送消息到窗口的消息循环,但我不知道很多关于消息传递,如果我可以发送像这样的“自定义”消息 例: private uint lgLcdOnConfigureCB(int connection, System.IntPtr pContext) { OnConfigure(EventArgs.Empty); return 0U; } 这个回调是从另一个我无法控制的程序调用的,我想在主线程中运行OnConfigure方法(处理我的winform的那个),怎么做呢? 换句话说,我想运行OnConfigure而不需要考虑锁 编辑1: 我有这个例外的问题: CallbackOnCollectedDelegate reived消息:在GarbageCollector中收集的委托’G19dotNet!G19dotNet.LgLcd + lgLcdOnSoftButtonsCB :: Invoke’上运行回调。 在非托管代码期间,应确保代理永远不会被删除,直到您确定它们永远不会被调用 编辑2: 问题由我自己解决,感谢Stackoverflow总是帮助我! 供将来参考: 将委托定义为函数指针

ASP.NET MVC多个复选框

我有一个大约20个项目的List ,我想向用户显示每个项目旁边的复选框(我的ViewModel上的Available属性)。 提交表单时,我希望能够通过ViewModel上的Selections属性将每个复选框的值传递回我的控制器方法。 我将如何使用MVC中的Form Helper类进行此操作? 这有可能吗? PS:我不想要一个列表框,用户可以只突出显示多个项目。

使用c#进行查询validation

我在c#中寻找一个查询validation器,它允许我从文本框中解析SQL文本,并在发送它执行之前validation它是否正确。 (MS SQL或DB2查询)。

如何将所有键和所有鼠标按钮挂钩?

我在Form1上面做过: using Gma.UserActivityMonitor; 然后声明: Gma.UserActivityMonitor.GlobalEventProvider actHook = new GlobalEventProvider(); 然后在Load事件中我做了: actHook.MouseClick += actHook_MouseClick; 然后在底部: private void actHook_MouseClick(object sender, MouseEventArgs e) { if (e.Clicks > 0) { MessageBox.Show(“hi”); } } 但是一旦我在加载任何东西之后运行我的应用程序,我就会在文件上遇到exception:HookManager.Callbacks.cs 在线: throw new Win32Exception(errorCode); 例外:找不到指定的模块 System.ComponentModel.Win32Exception was unhandled HResult=-2147467259 Message=The specified module could not be found Source=ScreenVideoRecorder ErrorCode=-2147467259 NativeErrorCode=126 StackTrace: at Gma.UserActivityMonitor.HookManager.EnsureSubscribedToGlobalMouseEvents() in d:\C-Sharp\ScreenVideoRecorder\ScreenVideoRecorderWorkingVersion\HookManager.Callbacks.cs:line 236 […]

动态对象智能感知

如果动态在编译时解析为对象,并且所有.NET类型都扩展了对象,为什么动态不像IntelliSense的对象那样? 每当我使用动态时,我都会收到一条消息“动态表达式。这将在运行时解决”。 当然它也应该显示对象成员?

从HSL值创建C#颜色

如何从HSL值创建C#颜色?

计算C#中文件内容的哈希值?

我需要计算C#中文件内容的哈希值? 所以,我可以在我的应用程序中比较两个文件哈希值。 我有搜索但没找到。

限制用户仅在C#windows应用程序中输入数字

我试过这个代码只限制数字。它只键入数字,当我们尝试输入字符或任何其他控件时不进行输入,即使它也不输入退格。 如何防止退格。 private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e) { if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), “\\d+”)) e.Handled = true; }

如何将图像用作PictureBox的源后从文件夹中删除?

链接到我之前提出的问题背景 我通过以编程方式更改保存附件的临时文件夹中的图像来回答我自己的问题。 在修复我认为与前者过于分离的问题时,这给我带来了一个新问题。 当我的程序关闭时,我会删除临时目录中的图像。 由于我点击不同的图像后,预览工作正常。 尝试关闭程序时出现以下错误(在此事件中删除图像): 该进程无法访问文件’c:\ temp \ DigitalArchive \ FILENAME.jpg’,因为它正由另一个进程使用。 所以我试图通过清除临时文件夹中的图片来解决它: if (picAttachPreview.Image != null) { picAttachPreview.Image.Dispose(); picAttachPreview.Refresh(); } //Runs through each file in the temporary directory and removes them to clear folder foreach (string item in Directory.GetFiles(tempfolder)) { File.Delete(item); } 编辑:我觉得我应该显示图像更新的位置以供参考: if (chkAttachments.Text.Contains(“.jpg”)) { var selectedImage = chkAttachments.Text; picAttachPreview.Image = Image.FromFile(Path.Combine(tempfolder, selectedImage)); […]