草庐IT

移植修复

全部标签

等效于 System.Diagnostics.StackTrace 的 C# 可移植类库

我正在处理的一个程序有一个名为“Error”的日志记录功能,可以在不使程序崩溃的情况下通知错误,但是,我想包含一个堆栈跟踪,以便可以更轻松地调试这些非fatalerror。我的第一直觉是使用System.Diagnostics.StackTrace,不幸的是,它在PCL中不可用。然后,我尝试抛出并迅速捕获异常。try{thrownewException();}catch(Exceptionex){returnex.StackTrace;}不幸的是,这只提供了调用堆栈的顶部:因为它不会在向下的过程中解开堆栈,所以它不会提供任何有用的信息。所以,我的问题是:如何在c#PCL函数中获取堆栈跟

c# - StreamReader 和可移植类库

我正在使用可移植类库编写一个ConfigManager类。PCL支持我想使用的StreamReader和StreamWriter类,但是这些类的PCL版本不支持在构造期间传入字符串。PCL也不支持reader.Close()和writer.Close()。最后,它不支持FileStream类。所以我正在寻找以下任一问题的答案:如何让StreamReader和StreamWriter类正常工作在PCL中?如何使用PCL创建新的流?在PCL中加载和保存文件还有哪些其他选择? 最佳答案 使用Dispose()而不是Close()(或者只是

c# - 使用没有 FSharp.Core.dll 引用的 F# 的可移植类库

我尝试使用F#创建可移植类库,例如可以从C#代码中使用它。但看起来像使用标准F#构造,例如raise使得FSharp.Core.dll成为使用创建的可移植类库所必需的。raise(ArgumentNullException("parameter"))转化为Operators.Raise(newArgumentNullException("source"));(其中Operators.Raise位于Microsoft.FSharp.Core命名空间中)而不仅仅是thrownewException我认为这不是唯一从FSharp.Core.dll库中编译为某些静态方法的F#构造。有什么方法可

c# - 可移植类库不支持System.IO,为什么?

我创建了一个可移植类库,用于我的Monodroid项目。但问题是我需要System.IO库,但不幸的是我无法添加它。我什至尝试通过“添加引用”选项添加它,但没有成功。为什么会这样?我该怎么做? 最佳答案 您不能使用System.IO,因为它不是可移植类库。System.IO进行特定于其运行的操作系统(Windows)的调用,而可移植类库是跨平台的。可以找到您正在寻找的解决方案here:Whatshouldyoudowhenyou’retryingtowriteaportablelibrarybutyouneedsomefunctio

c# - 如何修复文件格式和扩展名不匹配?

我在c#中创建了一个代码,用于创建和保存excel文件。该代码可以成功创建和保存excel文件,但是当我打开创建的excel文件时,它会显示一条警告消息,告知:Thefileformatandextensionof'filename.xls'don'tmatch.Thefilecouldbecorruptedorunsafe.Unlessyoutrustitssource,don'topenit.Doyouwanttoopenitanyway?我正在使用以下代码:privatevoidbutton1_Click(objectsender,EventArgse){saveFileDial

c# - 如何修复嵌套的winform控件闪烁问题

我目前正在开发一个程序,该程序使用相当复杂的嵌套winform控件结构,这些控件会随着用户做出某些选择而动态变化。要更详细地了解控件的具体布局,对于这个问题来说太过广泛了。每当做出选择时,都会对由用户控件控制的基础模型进行大量更新。然后,这会导致所显示控件的大小/位置/可见性发生一系列相应的变化。所有这些变化都会导致屏幕上的控件出现令人痛苦的强烈闪烁。我需要以某种方式解决此问题,以便每次用户进行选择时,屏幕基本上会卡住,直到所有控件更新完成。我尝试在许多不同的地方和方式中使用Control.SuspendLayout/Control.ResumeLayout方法,但我无法消除疯狂的闪烁

c# - .NET:EventHandler 竞争条件修复如何工作?

有以下模式用于在引发事件时避免竞争条件,以防另一个线程取消订阅MyEvent,使其为空。classMyClass{publiceventEventHandlerMyEvent;publicvoidF(){EventHandlerhandler=MyEvent;if(handler!=null)handler(this,EventArgs.Empty);}}与容易出现这种竞争条件的错误方法相反:classMyClass{publiceventEventHandlerMyEvent;publicvoidF(){if(MyEvent!=null)MyEvent(this,EventArgs.

c# - ReSharper 的快速修复命令的名称是什么

我想将Alt-Enter击键(用于灯泡建议)重新分配给另一个键,但我在选项->键盘列表中找不到它。所有ReSharper命令的名称中似乎都有ReSharper_。但我无法弄清楚他们用于快速修复的名称。 最佳答案 Resharper8似乎已将其重命名为Resharper_AltEnter。 关于c#-ReSharper的快速修复命令的名称是什么,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

c# - 如何修复向多个收件人发送邮件时抛出的异常?

在下面的代码片段中,我在“this.Recipients”上收到FormatException。更具体地说,该消息是“在邮件header中发现无效字符:';'”。Recipients是一个由三个电子邮件地址组成的字符串,用分号(“;”字符)分隔。收件人列表是从app.config中读取的,数据正在将其放入Recipients变量中。当多个收件人应该用分号分隔时,我怎么会收到此错误消息?有什么建议么?一如既往,感谢您的帮助!publicboolSend(){MailMessagemailMsg=newMailMessage(this.Sender,this.Recipients,this

c# - C# 的可移植数据库

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我知道这似乎是一个已经被问过的问题,但我已经尝试了那里的解决方案。我正在用C#构建一个程序,我需要以一种方式保存数据,让每个客户端都有自己的新(动态路径)到他的数据库。我该怎么做才能让用户不需要安装额外的东西,而只需要安装.NET框架?我听说过SQLite,但我并没有真正让它发挥作用。