使用BindingOperations.EnableCollectionSynchronization

我有两个WPF应用程序“UI”,“调试器”和一个ClassLibrary“BL”。 UI对Debugger和BL的引用。 调试器引用BL。 我在BL中收集了名为MyCollection的集合。 UI应用程序启动调试器应用程序,调试器绑定到BL中的集合MyCollection。 当我尝试从UI应用程序更改MyCollection集合时,我遇到exception。 A first chance exception of type ‘System.NotSupportedException’ occurred in PresentationFramework.dll Additional information: This type of CollectionView does not support changes to its SourceCollection from a thread different from the Dispatcher thread. 我在google搜索并发现: BindingOperations.EnableCollectionSynchronization我无法弄清楚如何使用它。 我不想引用我的BL项目中的任何UI dll。 任何人都能协助我吗? 谢谢您的帮助!

用于c#中的变量声明和初始化的正则表达式

我想编写一个RegEx来从变量声明语句中提取所有变量值及其名称。 说我有 int i,k = 10,l = 0 我想写一个正则表达式像int \ s ^,?|(^,?)*但这也接受k = 10 ie(没有int在它之前)基本上想法是如果字符串以int开头然后获取变量列表分离通过, 我知道要提取csv值,但这里我的字符串也有一些初始值。 我该如何解决?

需要一些建议来尝试模拟.NET WebClient或等效的

我有一些代码可以下载一些RSS源。 我一直在使用WebClient或Argotic.Syndication.RssFeed库。 但这些都不可模糊:( 我绝对不希望每次运行unit testing时都能看到真正的RSS提要。 有没有人对我能做什么有任何建议? 我需要创建一个邪恶的包装器吗? 如果是的话……对此有何建议?

MAX(id)使用SqlDataReader C#

我该如何改变: using (SqlCommand myCommand = myConnection.CreateCommand()) { myConnection.Open(); myCommand.CommandText = “SELECT FormID FROM tbl_Form”; using (SqlDataReader reader = myCommand.ExecuteReader()) { while (reader.Read()) { int FormID = reader.GetInt32(reader.GetOrdinal(“FormID”)); MessageBox.Show(FormID.ToString()); } } } 得到MAX(FormID) ? 我的自然倾向是在FormID周围抛出一个MAX,但我得到一个IndexOutOfRangeexception。

适用于多个应用程序的常见app.config

我有几个C#控制台应用程序,需要具有相同的设置集。 我想避免重复,并避免为每个应用程序单独的app.config 。 有没有办法为应用程序( app1.exe , app2.exe )读取常见的app.config文件(比如common.config )。

使用Entity Framework和MySQL实现乐观并发

我目前正在使用Entity Framework 4.1和MySQL开发应用程序。 我想使用乐观并发,因此需要创建一个表结构,允许EF检测并发问题。 我的目标与此类似: http : //blogs.msdn.com/b/alexj/archive/2009/05/20/tip-19-how-to-use-optimistic-concurrency-in-the-entity- framework.aspx 。 我的问题是MySQL中的时间戳类型与MS SQL Server不同。 除此之外,时间戳和日期时间都不能提供MySQL的亚秒级精度(http://feedblog.org/2007/05/26/why-doesnt-mysql-support-millisecond-datetime-resolution/)。 因此,这些类型在检测并发性问题时会非常糟糕。 我可以用什么其他数据类型来解决这个问题? 我在考虑使用Guid。 但是这种方法存在两个潜在的问题:1。MySQL将Guids存储为char(36),使得效率非常低。 2.我不确定EF是否要求行版本严格增加,或者它是否足以让它独一无二。

找不到模块

我一直在研究这个问题并且没有更接近解决方案。 我再次挖出了我的旧版WindowsHookLib – 它可以在http://www.codeproject.com/KB/DLL/WindowsHookLib.aspx上获得 。 该库允许全局Windows鼠标/键盘/剪贴板挂钩,这是非常有用的。 我正在尝试使用此处的Mouse Hook捕获Mouse-Motion(我可以使用一个总是轮询Cursor.Position的Timer,但我打算稍后使用WindowsHookLib的更多function)。 代码如下: MouseHook mh = new MouseHook(); mh.InstallHook(); mh.MouseMove += new EventHandler(mh_MouseMove); 但是在调用InstallHook()时,我得到一个exception:“无法找到指定的模块”。 奇怪。 搜索,我发现有人认为这是因为DLL不在Windows PATH变量中包含的地方,并且因为将它放在system32中并没有帮助我将整个程序转换为C#以直接包含在我的项目(我很好奇它是如何工作的)。 但是这个错误是顽固不变的,所以我对此进行了一些挖掘,发现了负责的库中的代码:在InstallHook()中,我们有 IntPtr hinstDLL = Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]); this._hMouseHook = UnsafeNativeMethods.SetWindowsHookEx(14, this._mouseProc, hinstDLL, 0); if (this._hMouseHook == IntPtr.Zero) { throw new MouseHookException(new Win32Exception(Marshal.GetLastWin32Error()).Message); } 而这(在修改和重新编译之后)告诉我,我真正得到的是Windows错误“ERROR_MOD_NOT_FOUND”! 现在,我在这里难过。 我不是直接将Hook Library编译成我的项目吗? (UnsafeMethods.SetWindowsHookEx只是来自user32的DllImported方法) 任何答案,或正确方向的Prods,或任何提示,指针或类似的非常感谢!

在datetime c#中格式化字符串以在MYSQL datetime列中插入

我有这样的代码: AutoParkDataDataContext Db = new AutoParkDataDataContext(); Dailyreport dailyRep = new Dailyreport(); string time = Convert.ToDateTime(“10-10-2014 15:00:00”); dailyRep.order_time = time; Db.Dailyreports.InsertOnSubmit(dailyRep); Db.SubmitChanges(); 当我在DailyReport表中看到它时, DailyReport显示日期(“10-10-2014 00:00:00:00”) ,因此时间被忽略。 我该怎么办呢? 列类型是DateTime 。

TopMost总是不是TopMost – WPF

我有一个时钟应用程序。 我已经设置了Window的TopMost属性。 但是,随机地,一些其他窗口或视觉工作室来到时钟之上。 有没有其他方法可以使我的窗口(时钟应用程序)始终显示在所有其他应用程序之上。

什么是SUT,它来自哪里?

我看到很多人都在谈论SUT这个术语,但不明白为什么他们会使用这个术语。 SUT是你想要测试的吗? 这个术语来自哪里,它意味着什么? 例如,在这个测试中,我的SUT是什么? [TestMethod] public void UsersAction_should_return_IndexAction() { const long id = 1; UsersViewModel viewModel = new UsersViewModel() { SelectedUsers = new long[] { 1, 2, 3, 4 } }; ActionResult result = _controller.Users(id, viewModel); result.AssertActionRedirect().ToAction(“Index”); }