草庐IT

mono-reactive

全部标签

c# - Mono.Cecil type.IsAssignableFrom(derivedType) 等效项

我正在使用Mono.Cecil在Assembly中查找派生自给定的类型。通常可以使用IsAssignableFrom()方法来完成,但我无法确定它在Cecil中是等效的。有没有这样的方法或其他方法来检查它?谢谢迈克 最佳答案 继承检查和“赋值兼容性”检查实际上是不同的东西。您要检查继承还是“分配兼容性”?赋值兼容性包括很多东西,包括有符号/无符号转换、枚举到基类型的转换、char至short转换、通用方差转换、从接口(interface)到object的转换,从数组到IList和IList以及它们的基本接口(interface)、数

c# - 在不停止序列的情况下处理 Reactive Extensions 中的异常

为什么RX有如下语法OnNext*(OnError|OnCompleted)?而不是(OnNext|OnError)*OnCompleted?从实现的角度来看这是很清楚的(这也与IEnumerable和yield有共同的语义)但我想这与现实生活中的情况不同。在现实生活中——生产者生成混合的数据流和异常(异常不会破坏生产者)。问题:如果我理解正确,唯一可能的解决方案是使可观察返回的复杂数据结构结合初始数据和产生的异常(Observable.Timestamp()和.TimeInterval()具有类似的概念)还是有其他选择?目前我想到了以下解决方案:在observable生产者内部,我手

c# - Debug.Assert 似乎不适用于 Mono

考虑以下C#程序:usingSystem;usingSystem.Diagnostics;namespaceTest{classMainClass{publicstaticvoidMain(string[]args){Debug.Assert(false);Debug.Fail("fail!");Console.WriteLine("HelloWorld!");}}}编译时使用:dmcs-debug-d:DEBUGMain.cs然后运行它:mono--debugMain.exe断言和失败似乎被忽略了。输出只是:HelloWorld!我在StackOverflow上查看了其他相关问题,但

c# - 使用 Reactive Extensions 重新排序事件

我正在尝试对在不同线程上无序到达的事件进行重新排序。是否可以创建与这些弹珠图相匹配的响应式扩展查询:s11234s21324result1234和...s11234s24321result1234即:只按版本号顺序发布结果。我得到的最接近的是每次s1滴答时使用Join打开一个窗口,并且仅当s2以相同的数字到达时才关闭它。像这样:varpublishedEvents=events.Publish().RefCount();publishedEvents.Join(publishedEvents.Scan(0,(i,o)=>i+1),expectedVersion=>publishedEv

c# - 为什么 Mono 源代码大部分是 C#?

我第一次看Mono的源代码,我以为我会找到一堆C或C++代码,但我发现了26,192个.cs文件和7个.cpp文件。我并不完全震惊,但它让我想起了一个一直在我脑海中萦绕的问题:一个项目怎么会变成这样“自己”写的?旧版本的mono是否更多的是c/c++?或者是否有最初的努力来创建某种机器编码的编译器......这里的“技巧”是什么? 最佳答案 Mono的编译器是用C#编写的。您可能想阅读有关compilerbootstrapping的内容. 关于c#-为什么Mono源代码大部分是C#?,我

c# - 'Debug.Assert' 语句在 Mono 中不起作用

我这里有这个程序:namespaceTodoPlus{usingSystem.Diagnostics;publicclassLameProg{publicLameProg(){}publicstaticvoidMain(string[]args){inta=2;intb=3;Debug.Assert(a==b,"Bleh");System.Console.WriteLine("Haha,itdidn'twork");}}}不知何故,Debug.Assert不工作。我正在使用Mono2.10.5,这是我用来编译和执行的:dmcsLameProg.csmono./LameProg.exe我

c# - 什么是 System.Reactive.Linq.Observαble? (注意阿尔法)

System.Reactive.Linq.Observαble是什么?请注意用希腊字母“alpha”代替“a”。Observable不Observable在程序集中的这个命名空间中找到了大约一百个类(都是internal)//C:\ProgramFiles(x86)\MicrosoftSDKs\ReactiveExtensions\v2.0\Binaries.NETFramework\v4.0\System.Reactive.Linq.dll//System.Reactive.Linq,Version=2.0.20823.0,Culture=neutral,PublicKeyToken

c# - 是否有用于使用 Reactive UI 订阅分层属性更改的模式?

假设我有以下View模型:publicclassAddressViewModel:ReactiveObject{privatestringline;publicstringLine{get{returnthis.line;}set{this.RaiseAndSetIfChanged(x=>x.Line,refthis.line,value);}}}publicclassEmployeeViewModel:ReactiveObject{privateAddressViewModeladdress;publicAddressViewModelAddress{get{returnthis.a

c# - Mono.Cecil 是否负责分支机构等位置?

好吧,这个问题可能看起来很奇怪,但它很简单——我的意思是如果我在反编译代码中有一个“goto”(brtrue等),比如示例brIL_0003call*****IL_0003:ret然后我在该****调用之后添加了一个命令,将顶部的br按原样或该代码进行ret。是Cecil自己做还是我必须照顾所有这些分支?:/修复它们并不是很难,但如果Cecil不这样做,我就不会开始这个项目,我没有时间(或知识)学习高级IL魔法:P(是的,我知道它不会是IL_0003,它只是举例) 最佳答案 是的,Cecil会为您更新分支。您唯一需要注意的情况是分支

c# - 如何使用 Reactive Extensions 使用最大窗口大小来限制事件?

场景:我正在构建一个UI应用程序,每隔几毫秒从后端服务获取通知。收到新通知后,我想尽快更新UI。因为我可以在短时间内收到很多通知,而且我总是只关心最新的事件,所以我使用了ReactiveExtensions框架的Throttle()方法。这让我可以忽略紧跟新通知的通知事件,因此我的UI保持响应。问题:假设我将通知事件的事件流限制为50毫秒,并且后端每10毫秒发送一次通知,则Thottle()方法将永远不会返回事件,因为它会一次又一次地重置其滑动窗口。在这里,我需要一些额外的行为来指定诸如超时之类的东西,以便在事件吞吐量如此之高的情况下,我每秒至少可以检索一个事件。我如何使用Reacti