我可以使用.NET DLL解决单声道NotImplementedException吗

时间:2019-01-25 12:14:46

标签: c# .net unity3d mono httplistener

我正在尝试使用{p> {1}}设置超时

oiasdjiasjoij

但是这会在我的Unity应用程序中抛出HttpListener。我在Unity 2019.1.0a10中在.NET 4.5中添加了TimeoutManager属性(在2018.3中具有相同的行为),我目前正在使用当前defaults to .NET 4.6的.NET 4.x运行时。

为了验证这不是我搞砸了,我针对.NET 4.6创建了一个单独的C#项目,并制作了以下程序:

HttpListener listener;

void Foo()
{
    listener.TimeoutManager.IdleConnection = TimeSpan.FromMinutes(5);
}

运行正常,分别记录NotImplementedExceptionprivate static void Main(string[] args) { HttpListener listener = GetNewListener(); Console.WriteLine(listener.TimeoutManager.IdleConnection); HttpListener listener2 = new HttpListener(); SetIdleTimeout(ref listener2, 10); Console.WriteLine(listener2.TimeoutManager.IdleConnection); Console.ReadLine(); } public static void SetIdleTimeout(ref HttpListener listener, int timeout) { listener.TimeoutManager.IdleConnection = TimeSpan.FromMinutes(timeout); } public static HttpListener GetNewListener() { HttpListener listener = new HttpListener(); listener.TimeoutManager.IdleConnection = TimeSpan.FromMinutes(5); listener.TimeoutManager.HeaderWait = TimeSpan.FromMinutes(5); listener.TimeoutManager.DrainEntityBody = TimeSpan.FromMinutes(5); return listener; }

现在知道它实际上可以在之外统一使用,我将此程序构建到DLL中并将其包含在我的Unity项目中,希望调用00:05:00将使用dll框架的00:10:00,因此可以进行设置。但这也会导致GetNewListener

是否有一种方法可以解决以下事实:它不是统一实现的,不是使用DLL的,还是自己实现的?还是唯一尝试与Unity联系并希望他们实现的解决方案?


编辑: 提醒我,Unity实际上使用 mono ,并且在其github上查看TimeoutManager的mono实现确实显示了NotImplementedException

现在我的原始问题仍然存在:是否可以用DLL的 .net 实现覆盖 mono 实现?

1 个答案:

答案 0 :(得分:1)

我认为您可以尝试使用Harmony之类的东西在Mono的TimeoutManager上修补HttpListener方法。