是否有将VB.NETwinforms应用程序移植到C#的“好”资源?我敢肯定有一些软件只能翻译代码,但我希望同时重构代码。将其保持在当前形式是有问题的,因为它使用了一些VB.NET允许的“不良设计”做法,并且会使future的维护进一步复杂化。这里有没有人经历过这个过程,你是怎么做到的?您是否使用了翻译/重构方法?您是否只是使用最终产品来重新创建功能,而没有查看其中大部分的当前代码库?您(共同)会推荐什么?更新:正如我告诉Grauenwolf的那样,将其保留为当前语言会带来以下问题:无法轻松添加功能。VB.NET不是我坚如磐石的语言。我很欣赏学习该语言并将其移植过来的讽刺意味——但fu
我正在处理的一个程序有一个名为“Error”的日志记录功能,可以在不使程序崩溃的情况下通知错误,但是,我想包含一个堆栈跟踪,以便可以更轻松地调试这些非fatalerror。我的第一直觉是使用System.Diagnostics.StackTrace,不幸的是,它在PCL中不可用。然后,我尝试抛出并迅速捕获异常。try{thrownewException();}catch(Exceptionex){returnex.StackTrace;}不幸的是,这只提供了调用堆栈的顶部:因为它不会在向下的过程中解开堆栈,所以它不会提供任何有用的信息。所以,我的问题是:如何在c#PCL函数中获取堆栈跟
我正在使用可移植类库编写一个ConfigManager类。PCL支持我想使用的StreamReader和StreamWriter类,但是这些类的PCL版本不支持在构造期间传入字符串。PCL也不支持reader.Close()和writer.Close()。最后,它不支持FileStream类。所以我正在寻找以下任一问题的答案:如何让StreamReader和StreamWriter类正常工作在PCL中?如何使用PCL创建新的流?在PCL中加载和保存文件还有哪些其他选择? 最佳答案 使用Dispose()而不是Close()(或者只是
我尝试使用F#创建可移植类库,例如可以从C#代码中使用它。但看起来像使用标准F#构造,例如raise使得FSharp.Core.dll成为使用创建的可移植类库所必需的。raise(ArgumentNullException("parameter"))转化为Operators.Raise(newArgumentNullException("source"));(其中Operators.Raise位于Microsoft.FSharp.Core命名空间中)而不仅仅是thrownewException我认为这不是唯一从FSharp.Core.dll库中编译为某些静态方法的F#构造。有什么方法可
我创建了一个可移植类库,用于我的Monodroid项目。但问题是我需要System.IO库,但不幸的是我无法添加它。我什至尝试通过“添加引用”选项添加它,但没有成功。为什么会这样?我该怎么做? 最佳答案 您不能使用System.IO,因为它不是可移植类库。System.IO进行特定于其运行的操作系统(Windows)的调用,而可移植类库是跨平台的。可以找到您正在寻找的解决方案here:Whatshouldyoudowhenyou’retryingtowriteaportablelibrarybutyouneedsomefunctio
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我知道这似乎是一个已经被问过的问题,但我已经尝试了那里的解决方案。我正在用C#构建一个程序,我需要以一种方式保存数据,让每个客户端都有自己的新(动态路径)到他的数据库。我该怎么做才能让用户不需要安装额外的东西,而只需要安装.NET框架?我听说过SQLite,但我并没有真正让它发挥作用。
我是一名长期的C#开发人员,但不熟悉Mono,尤其是Gtk#。我使用C#和Gtk#开发了一个小应用程序。我需要这个应用程序在Windows、Linux和Mac上运行,所以我决定选择Mono,到目前为止,它似乎是一个很酷的框架。我的简单应用程序所做的是根据用户选择的本地目录和端口启动XSP网络服务器。理想情况下,我希望我的应用程序无需首先安装Mono框架即可运行,但这并不是必须开始的。我正在使用以下库:usingSystem;usingGtk;usingSystem.Net;usingMono.WebServer;usingSystem.Diagnostics;我正在Mac(SnowLe
我需要从可移植类库中将路径解析为多个部分,并获取文件名、扩展名、目录名等内容。所有这些方法都相当容易从System.IO.Path中访问,但是,这似乎不存在于可移植类库中。是否有此API或其他API的开源替代品可以提供相同的功能? 最佳答案 您可以使用或修改Mono中System.IO.Path的代码:https://github.com/mono/mono/blob/master/mcs/class/corlib/System.IO/Path.cs编辑:另外,我的PCLStorage库为PCL提供了一些文件IOAPI,包括Port
首先,我需要强调的是,这个问题与thisthread中的问题略有不同。.此外,安装KB2468871没有帮助。我尽量简化了这个问题。一般来说,它是关于使用Assembly.LoadFile(...)在桌面应用程序中加载PCL程序集。假设有一个.NET4.0控制台应用程序(称为“C”)。它引用.NET4.0程序集(称为“N4”)和PCL程序集(称为“PCL”)。N4看起来像这样:usingSystem.Linq;namespaceN4{publicclassClassInN4{publicstaticstringGreet(){returnnewstring("hellofromN4".
我正在尝试使用Windows可移植设备API和此API提供的PortableDeviceManager在Windows上枚举已连接的可移植设备。我已经按照MSDN文档link实现了设备ID枚举。和各种博客link,但它们都会导致相同的问题-当有多个连接时,我只能让它为我提供一个设备的ID。这是我正在使用的C#代码片段:PortableDeviceManagerClassdeviceManager=newPortableDeviceManagerClass();deviceManager.RefreshDeviceList();uintnumberOfDevices=1;deviceMa