草庐IT

Streaming模式

全部标签

c# - 比较两个列表并找到这两个列表之间的增量的最有效模式/算法是什么?

我们有两个列表,比如说学生和他们的分数。我想比较这两个列表并找到新列表和旧列表之间的增量,然后找到侵入性最小的方式将任何更改插入或更新到新列表中。解决这个问题的最佳算法是什么?希望专注于对新列表和性能进行最少的更改。示例代码:ListexistingList=newList();ListnewList=newList();publicTopLists(){InitTwoLists();}privatevoidInitTwoLists(){existingList.Add(newListItem{Name="Shane",Score=100});existingList.Add(newL

c# - 状态设计模式的功能等价物

状态设计模式的函数式编程等价物是什么?或者更具体地说,thisWikipediaexample会怎样?状态设计模式将转化为FP? 最佳答案 此模式是使用Statemonad的示例,一个计算环境用状态增加代码。这是Haskell中的一个实现。一些助手:importControl.Monad.Trans.StateimportControl.Monad.IO.ClassimportData.Char程序的两种运行模式dataMode=A|B这种模式下的状态计算类型,增加了一个计数器。typeStateMa=StateT(Int,Mode

c# - ASP .NET WebAPI 路由数据模式

目前,我们正在使用这样的路线:[HttpPost][Route("upload")]publicasyncTaskUpload(dynamicuploadedData){JArrayfiles=uploadedData.pdfs;//...}我不想使用dynamic,而是希望对传入的数据有一个示意性的理解。所以我可以使用这样的设置,使用一个定义模式的类:publicclassUploadRequest:JObject{publicJArraypdfs{get;set;}}[HttpPost][Route("upload")]publicasyncTaskUpload(UploadReq

c# - caSTLe-windsor 中的多装饰器模式

我们正在重新设计一些遗留软件以使其更易于测试,并决定使用依赖注入(inject)和CaSTLe.Windsor来帮助我们。首先,我们的目标:*许多装饰器都在数据流上工作。*装饰器的多种组合是可能的,并且可能需要每种情况下的根节点从不同的地方获取数据。从技术上讲,我们的设计如下:interfaceIUpdateableValue{TGet();};我们有使用多个组件检索三组数据,所有组件都实现IUpdateableValue()(伪代码):JsonParser(Decompressor(Decrypter(decryptionKeyFileCache(filename,HttpWebDo

c# - IIS 中的 WCF,在工作组模式下使用 MSMQ

我一直在试用MSMQ和WCF,但我似乎无法让它正常工作。通过使用WCF和服务引用,我已经让客户端(向队列发送消息)正常工作。执行此操作的代码或多或少是这样的:staticvoidMain(string[]args){varclient=newMsmqServiceReference.MsmqContractClient();client.SendMessage("TEST");client.Close();Console.ReadKey();}其中MsmqContractClient是我添加服务引用时由visualstudio生成的代理。app.config中的端点指向一个msmque

c# - 使用访问者模式从平面 DTO 构建对象图

我为自己编写了一个非常简单的小域模型,对象图如下所示:--Customer--Name:Name--Account:CustomerAccount--HomeAddress:PostalAddress--InvoiceAddress:PostalAddress--HomePhoneNumber:TelephoneNumber--WorkPhoneNumber:TelephoneNumber--MobilePhoneNumber:TelephoneNumber--EmailAddress:EmailAddress此结构完全与我必须使用的遗留数据库不一致,因此我定义了一个平面DTO,其中包

c# - Debug 和 Release 模式之间的异常堆栈跟踪差异

下面的代码在调试和Release模式下生成不同的异常堆栈跟踪:staticclassET{publicstaticvoidE1(){thrownewException("E1");}publicstaticvoidE2(){try{E1();}catch(Exceptione){throw;}}publicstaticvoidEntry(){try{E2();}catch(Exceptione){Console.WriteLine(e.StackTrace);}}}Debug模式下的结果:atET.E1()inD:\myStudio\CSharp\CSharp4.0\MyCSharp\

c# - 如何使用关闭方法正确实现处置模式 (CA1063)

框架设计指南(第2版,第327页)说:CONSIDERprovidingmethodClose(),inadditiontotheDispose(),ifcloseisstandardterminologyinthearea.Whendoingso,itisimportantthatyoumaketheCloseimplementationidenticaltoDisposeandconsiderimplementingIDisposable.Disposemethodexplicitly.所以,按照提供的示例,我得到了这个类:publicclassSomeClass:IDisposa

c# - 使用通配符检查文件名搜索模式中的冲突

我需要通过检查/比较表达式来比较文件系统通配符表达式以查看它们的结果是否重叠。例如,我们正在构建一个实用程序,它可以根据文件系统通配符表达式将一个(或多个位置)的文件分类到单独的文件夹中。例如:*.txt进入文件夹a,*.doc进入文件夹b,等等。我们支持的通配符是*和?我希望能够通过分析通配符表达式来确定它们是否会冲突/重叠。例如,如果我有以下表达式:*.x.y*.y它们会冲突(重叠),因为第二个表达式*.y会包含*.x.y结果。(例如A.x.y将匹配两个表达式)我通过使用所有表达式构建树结构来解决这个问题,我认为如果表达式冲突,构建树的行为就会失败。Forexample:*.xa.

c# - 验证检查在存储库模式中的什么位置?

假设我有一个名为User的实体,它有很多帖子。对于删除帖子,我的服务如下所示:voidDeletePost(intpostId,intuserId);我的验证码去哪儿了?(确保用户有删除权限)。我应该在存储库中使用1个数据库调用来执行此操作吗?或者我应该在我进行2次调用的服务层中执行此检查:通过userId获取用户。在对用户完成验证后调用delete。我将有2个存储库,1个用于用户,1个用于帖子,每个都如下所示://FromthePostRepository.voidDelete(intpostId);//MayhavetoaddauserIdparamifIdovalidationi