Tag: c#

在Windows 7计算机上编写/编译的.NET 4程序将无法在XP上运行

我有一个应用程序,我在Windows 7 Ultimate计算机上使用Visual Studio 2010中的C#.NET 4.0编写。 这个应用程序在Vista和其他Windows 7计算机上运行良好,但每当运行Windows XP的人试图运行它时它会崩溃。 为了重现这一点,我尝试在我的Win XP VMWare机器上运行它,它在那里崩溃了。 不幸的是,它没有给我任何特定的错误,只是告诉我程序崩溃了,需要关闭。 另一位用户发给我的电话如下: Run-time error ‘339’ Component ‘vbalSGrid6.ocx’ or one of its dependencies not correctly registered: a file is missing or invalid. Code 0xe0434352 Flags 0x00000001 当我尝试在我的Virtual XP机器上运行它时,我没有得到那一点,我也确保在那里安装.NET 4.0。 可能导致这种情况的原因是,如果XP支持.NET 4框架,为什么app不会在XP中运行? 程序中使用的组件:DataGridView,ComboBox,Buttons,Labels,LinkLabel,NewtonSoft的JSON解析器,以及它的相关内容。 我很困惑,完全不知道从哪里开始。 想法? 更新 :嗯,尝试在XP上运行我最近创建的其他应用程序,它加载得很好。 两者之间唯一的主要区别(在我使用的组件中)是我使用NewtonSoft的JSON库,我实际上认为它是.NET 3.5组件。 更新2 :只是为了踢,我试图在我的Wind7机器上以“Windows XP SP3”兼容模式运行程序,它运行正常。 当然,我不知道“兼容模式”如何模仿真正的XP SP3环境,但我想我还是会给你信息。

跟踪asp.net mvc网站的用户活动/操作?

我想为我的Web应用程序的所有用户保留每个页面视图的日志。 经过足够的时间后,我将使用该日志生成报告。 我想让日志记录机制有点灵活,因为我不需要记录每个http请求。 一个示例用例是:公司注册我的Web应用程序,允许5名员工使用该应用程序。 我想报告说,上周有3名员工使用了该应用程序。 或者表明当年6月至8月期间有4名员工使用过它。 我正在使用带有sql server的asp.net mvc,如果这有所不同。 它就这么简单吗? 使用以下列创建一个sql表:UserId,ControllerName,ActionName,ActionParameters,CreatedOn。 然后创建一个ActionFilterAttribute,为每个调用的操作向db添加记录。 是否有任何我应该担心的陷阱(除了可能很大的表格大小)?

Marshal.FreeHGlobal应该放在finally块中以确保资源处置?

我有以下代码块: IntPtr unmanagedPointer = Marshal.AllocHGlobal(buffer.Length); Marshal.Copy(buffer, 0, unmanagedPointer, buffer.Length); SomeCommandThatCanThrowAnException(); Marshal.FreeHGlobal(unmanagedPointer); 是否应该在try中包装块,并将FreeHGlobal命令放在finally块中。 (如果middle命令抛出exception)。 在这种情况下最终会阻止内存泄漏似乎是有道理的,但是从我在网上找到的例子中,最终没有使用。 也许资源会被自动处理掉(即使它们是不受管理的)。

Xml序列化 – 渲染空元素

我正在使用XmlSerializer并在类中具有以下属性 public string Data { get; set; } 我需要输出完全如此 我将如何实现这一目标?

从List 返回字符串的最优雅方式

什么是从列表返回字符串最优雅的方法ok,是的,我知道我可以做类似的事情 public string Convert(List something) { var s = new StringBuilder(); foreach(int i in something) s.AppendFormat(“{0} “, i); return s.ToString(); } 但我确定有一种方法可以用lambdas做到这一点我也尝试追加到一个字符串构建器但是这没有做什么预期

C#中的FlowDocument内存问题

我目前正在尝试处理释放FlowDocument资源的问题。 我正在加载一个rtf文件并将其放入带有TextRange.Load的FlowDocument中。 我注意到,在它执行此操作后,它会保留这些资源,GC不会收集它。 我已经运行了一个内存分析器,并且已经看到这是真的。 我还把它缩小到我加载实际将rtf放入FlowDocument。 如果我不这样做,那么一切都很好。 所以我知道这是问题所在。 我希望对如何解决这个问题提供一些指导。 这是加载rtf和所有内容的代码。 我已经评论了所有其他代码,甚至把它放在自己的范围内,并尝试了GC.Collect()。 任何帮助是极大的赞赏。 编辑:这是我目前的完整代码。 除了最基本的要素之外,我已经取出了其他所有东西来让它运行起来。 问题仍然存在。 如您所见,FlowDocument和TextRange未在其他任何地方引用。 public LoadRTFWindow(string file) { InitializeComponent(); using (FileStream reader = new FileStream(file, FileMode.Open)) { FlowDocument doc = new FlowDocument(); TextRange range = new TextRange(doc.ContentStart, doc.ContentEnd); range.Load(reader, System.Windows.DataFormats.Rtf); } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); } 我发现这篇文章 ,我希望能帮助我解决我的问题,但我没有运气。 非常感谢任何类型的帮助。 谢谢。 编辑:我想我应该提到我检查这个的主要方式。 我打开了Windows任务管理器,正在观察应用程序进程正在使用的内存使用情况。 当我运行上面的代码时,应用程序在执行TextRange.Load()时会从40,000K变为70,000K(这是一个400页的大型RTF),一旦完成,它就会下降到61,000K并保持在那里。 我的期望是它会回落到40,000K或者至少非常接近它。 正如我之前提到的,我使用了一个内存分析器,看到有很多段落,Run..ect。 […]

Windows窗体应用程序中的Dock,Anchor和Fluid布局

所以,我被要求重新设计几年前我写的旧应用程序。 基本上,没有什么需要改变,除了客户希望它更流畅,并且它必须是全屏的(没有可见的“窗口”)即没有Titlebar,只是一个无边框全屏窗口。 什么是确保一切都保持流畅的最佳方法,我的意思是我们如何确保一切都出现在它应该的位置,因为你知道,不同的分辨率,显示器尺寸等? 这在网页/ CSS中很容易,但这不是我以前做过的。 大多数控件将在运行时以编程方式创建,具体取决于执行的操作等。我将如何完成这样的布局? 基本上我希望能够全屏显示,不知道他们的显示器有多大,或者他们使用的是什么分辨率。

关闭SqlConnection和SqlCommand c#

在我的DAL中,我写这样的查询: using(SQLConnection conn = “connection string here”) { SQLCommand cmd = new (“sql query”, conn); // execute it blah blah } 现在我发现我没有明确关闭SQLCommand对象。 现在我知道’using’块将处理SQLConnection对象,但这还会处理SQLCommand对象吗? 如果不是我有一个严重的问题。 我必须在SQLCommand上使用’使用’成千上万行代码,或者在数百种方法上执行cmd.Close()。 请告诉我,如果使用或关闭命令将提供更好的Web应用程序内存管理?

.Net Core如何实现SQLAdapter ./ DataTable函数

我有一个简单的.Net Framework例程,它运行一个查询并返回一个DataTable对象。 我需要将其移植到.Net Core,但我推断不支持SQLAdapter和DataTable SqlConnection con = new SqlConnection(m_ConnectString); SqlCommand cmd = new SqlCommand(strQuery); SqlDataAdapter sda = new SqlDataAdapter(); // assign the transaction and connection to the command object cmd.Connection = con; sda.SelectCommand = cmd; DataTable dt = new DataTable(); // execute query and soak up results sda.Fill(dt); return dt; 任何人都可以建议我如何使用支持的内容重新实现此代码? 谢谢

WPF Toolkit Datagrid – 如何关闭选择?

我在WPF中有一个数据网格,我绑定到一个对象。 我有一个DataGridCheckBoxColumn,我希望用户能够通过并勾选他们想要的那些。 问题是他们必须点击两次,一次选择然后再次检查/取消选中。 你究竟怎么把它关掉,我一直在寻找方法来寻找答案。 datagrid具有SelectionMode和SelectionUnit属性 – 两者都不接受’none’或’go away’ 任何帮助表示赞赏! 我的代码在下面供参考