草庐IT

MONO_GC_PARAMS

全部标签

c# - 在方法覆盖中更改 params 修饰符

我知道params修饰符(将数组类型的一个参数转换为所谓的“参数数组”)不是方法签名的一部分。现在考虑这个例子:classGiraffid{publicvirtualvoidEat(int[]leaves){Console.WriteLine("G");}}classOkapi:Giraffid{publicoverridevoidEat(paramsint[]leaves){Console.WriteLine("O");}}编译时没有警告。然后说:varokapi=newOkapi();okapi.Eat(2,4,6);//willnotcompile!给出错误(方法“Eat”没有重

c# - 在 Mono 上使用自定义 SSL 客户端证书 System.Net.HttpClient

我正在使用MicrosoftHTTPClientLibraries来自NuGet,我基本上是在尝试使用X509Certificate2证书在HttpClient中允许TLS身份验证。我试过这样创建客户端:WebRequestHandlercertHandler=newWebRequestHandler(){ClientCertificateOptions=ClientCertificateOption.Manual,UseDefaultCredentials=false};certHandler.ClientCertificates.Add(this.ClientCertificate

c# - Socket.BeginReceive 在 Mono 上的性能

我正在用C#开发服务器。该服务器将充当备份服务的数据服务器:客户端将发送数据,大量数据,连续,特别是将发送文件数据block,最多五个,在同一个tcpchannel中。我会慢慢地向服务器发送数据,我不想杀死客户带宽,所以我不需要在最大数据发送时加速,因此,我可以为所有事情使用一个单一的tcpchannel。说到这里,其实服务端是使用BeginReceive方法从客户端获取数据的,在windows上就是IOCP。我的问题是:BeginReceive将如何通过mono在linux/freebsd上执行?在Windows上,我读了很多东西,性能很好,但是这个软件,服务器部分,将通过单声道在l

c# - Windows 上基于 Gtk 的 Mono.WebBrowser

我正在尝试想出一个最简单的例子来使用Mono.WebBrowser在Windows上使用Gtk。Windows.Forms版本有效很好(如果不指定Platform.Gtk,则为默认设置),但我需要集成到现有的Gtk跨平台应用程序中。这是一个简单的例子:publicstaticvoidMain(string[]args){Gtk.Application.Init();Gtk.Windowwin=newGtk.Window("Title");Mono.WebBrowser.IWebBrowserbrowser=Mono.WebBrowser.Manager.GetNewInstance(M

c# - 在 Mono 中处理通信的简单跨平台进程?

我正在开发一个将在Linux、Mac和Windows上运行的Mono应用程序,并且需要应用程序(在单个操作系统上)能够相互发送简单的字符串消息。具体来说,我想要一个单实例应用程序。如果尝试启动第二个实例,它将改为向已在运行的单个实例发送一条消息。DBus已经过时了,因为我不想让它成为一个额外的要求。套接字通信似乎很难,因为Windows似乎不允许连接权限。Mono似乎不支持内存映射文件。Mono似乎不支持命名管道。Mono似乎不支持IPC。那么,有没有一种简单的方法可以将单台机器上的字符串消息发送到适用于每个操作系统的服务器应用程序,而无需权限或其他依赖项?

c# - 在 OSX 和 Mono 上使用 C# 进行开发

我即将开始一个需要我编写C#代码的项目。问题是,我有一台Mac。我想知道在OSX10.6上使用mono进行c#开发是否有任何陷阱我认为页面很清楚,实现很清晰,但另一方面,我读到人们安装VMWare或类似的东西来使用Windows。如果可能的话,我想避免这种情况。注意I'llbeworkingonateamandalltheotherguyshaveWindowsmachines谢谢 最佳答案 根据您对HiVoltRock的回答(ASP.NET开发)的评论,我会说Mono2.10.1和MonoDevelop会很好(MonoDevelo

c# - 此处是否需要 GC.KeepAlive,或者我可以依靠局部变量和参数来保持对象的事件状态吗?

我有很多方法采用WPF的WriteableBitmap并使用不安全的代码直接从其BackBuffer中读取。每当我做这样的事情时,我是否应该使用GC.KeepAlive并不完全清楚:intMyMethod(WriteableBitmapbmp){returnDoUnsafeWork(bmp.BackBuffer);}一方面,在MyMethod的堆栈上仍然有对bmp的引用。另一方面,它似乎依赖于实现细节-这可能会编译为尾调用,例如,在输入DoUnsafeWork时不保留对bmp的引用。类似地,想象以下假设代码:intMyMethod(){WriteableBitmapbmp1=getAB

c# - 旧版本的 .Net 没有安装最新的 Mono?

我一直在使用VisualStudioCommunity2015开发.NET3.5C#项目,但我一直打算使用Mono和MonoDevelop在Linux(UbuntuGnome15.04)上进行大部分开发。我正在运行最新稳定的Mono版本(4.0.4)和MonoDevelop(5.9.6),它支持.NET4.5并且可以毫无问题地打开VS创建的解决方案文件。十年来,我一直在Linux上编写C++应用程序,但C#和.NET对我来说是全新的。所以我假设如果我安装了支持.NET4.5的Mono版本,我也会得到.NET3.5,因为新版本是旧版本的超集——很像C++14编译器支持C++03。然而,情

c# - params[] 可以作为 lambda 表达式的参数吗?

这个问题在这里已经有了答案:VariableparametersinC#Lambda(5个答案)关闭1年前。我最近开始探索lambda表达式,想到了一个问题。假设我有一个函数需要不确定数量的参数。我会使用params关键字来为可变数量的参数建模。我的问题:我可以用Lambda表达式做类似的事情吗?例如:Funcfoo=(paramsnumbers[])=>{intresult;foreach(intnumberinnumbers){result+=numbers;}returnresult;}如果是这样,就会出现两个子问题-是否有一种“好的”方式来编写这样的表达式,我什至想在某个时候编

c# - IDisposable GC.SuppressFinalize(this) 位置

我为我的代码使用默认的IDisposable实现模板(模式)。片段:publicvoidDispose(){Dispose(true);GC.SuppressFinalize(this);}protectedvirtualvoidDispose(boolisDisposing){if(!this.disposed){if(isDisposing){//cleanupmanagedresources}//cleanupunmanagedresourcesthis.disposed=true;}}我的问题:为什么在Dispose公共(public)方法中调用“GC.SuppressFina