草庐IT

Streaming模式

全部标签

c# - 存储库模式中的 IQueryable 与 IEnumerable,延迟加载

我读过一些文章,指出IEnumerable用于模拟存储过程或限制您的数据库。失去了对外部提供商的延迟加载能力。IQueryable为开发人员提供了更大的灵active。那里有延迟加载。就性能而言,两者都消耗大量性能..那么哪个更可取? 最佳答案 从RepositoryPattern的角度,可以这样想:如果您想一次性将整个列表传递给客户端,请使用预加载IEnumerable。他们仍然可以添加linq子句,但客户端不会从延迟执行中受益。如果您希望通过允许客户端添加自己的linq子句将延迟查询功能扩展到客户端,请使用延迟加载IQuerya

c# - 什么是 Humble Object 模式,它何时有用?

我正在阅读anarticlebyDinoEspositoonhowtotestAsyncConrollersinASP.NETMVC并且在那里他使用了“不起眼的对象”模式,但没有详细介绍。我在谷歌上也没有太多运气。那么,什么是谦虚对象模式?什么时候有用? 最佳答案 有athoroughdescriptionatxunitpatterns.com.基本上,您将所有逻辑拉到一个单独的对象中,您可以轻松地对其进行测试-而您的“低级对象”将成为您可测试对象的包装器;只是不起眼的对象还依赖于难以测试的事物,例如异步服务或GUI类。这个想法是在

c# - Winforms:在对话框外单击时关闭模式对话框

我有一个打开的模态对话框(Windows窗体)。我想要在对话框外(在父窗体上)单击时关闭对话框。我该怎么做? 最佳答案 您应该将其更改为非模态对话框(使用Show(..)打开它),然后使用Deactivate事件并关闭它。 关于c#-Winforms:在对话框外单击时关闭模式对话框,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4507483/

c# - 无效的正则表达式模式

我在C#中有一段代码用于检查值是否为有效的正则表达式模式。代码很简单:try{System.Text.RegularExpressions.Regex.IsMatch("",pattern);}catch(Exceptionex){return"patternmatchesmustbeavalidregexvalue";}我正在尝试测试它是否正常工作,但我找不到无效的正则表达式模式。有什么建议吗? 最佳答案 这是无效的...[您还可以在http://regexhero.net/tester/实时测试正则表达式的有效性。顺便说一句,您

c# - 如何使用异步等待模式初始化对象

我试图在我的服务类中遵循RAII模式,这意味着当一个对象被构建时,它就被完全初始化了。但是,我在使用异步API时遇到了困难。相关类的结构如下所示classServiceProvider:IServiceProvider//Isonlyusedthroughthisinterface{publicintImportantValue{get;set;}publiceventEventHandlerImportantValueUpdated;publicServiceProvider(IDependency1dep1,IDependency2dep2){//IDependency1provi

c# - 在对象内部以 Debug模式搜索

调试C#应用程序时是否可以在对象内部搜索值和/或其他字段?我正在寻找可以在多个级别下钻对象的深度搜索。我正在寻找的是一种在非常复杂的对象(调试时,例如在“快速监视”窗口中)内部进行搜索(如F3用于文档搜索)的方法。 最佳答案 你可以使用OzCode(VisualStudio的附加组件),它可以让您search对于您想从悬停数据提示或QuickWatch窗口中查看的成员。请参见以下屏幕截图中的示例:全面披露:我是“OzCode”的共同创建者。 关于c#-在对象内部以Debug模式搜索,我们

c# - Blowfish 引擎的 Bouncy CaSTLe CTS 模式未按预期工作

也许我的期望是错误的。我不是密码学专家,我只是一个普通用户。到目前为止,我已经竭尽全力地尝试使这项工作成功。背景信息:我正在尝试从使用Blowfish引擎(TCipher_Blowfish_)和CTS操作模式(cmCTS)的DelphiEncryptionCompendium移植旧版加密。私钥通过RipeMD256(THash_RipeMD256)散列。问题:输入的纯文本字节数组需要与CIPHER_BLOCK大小相同。据我所知,它不应该。来自维基百科:Incryptography,ciphertextstealing(CTS)isageneralmethodofusingablockc

c# - 在 Visual Studio 2013 中对托管单元测试使用混合模式调试

我在VisualStudio2013测试框架中有一个C#单元测试,该测试框架使用CLI和native代码。我想在执行C#单元测试时调查代码的native部分。但是,运行测试->调试->所有测试运行托管调试器,因此不会命中native代码中的断点,并且我无法像在混合模式调试器下运行程序时那样从C#->C++/CLI代码进行跟踪。例如,我的单元测试中的这段代码:[TestMethod]publicvoidTestRoundTripEvaluate(){varobj=newMyCLIObject();varroundtripped=RoundtripXml(obj);//Iwouldlike

c# - 存储库模式实现

似乎我找到的每个存储库模式示例的实现都在某种程度上有所不同。下面是我主要找的两个例子。interfaceIProductRepository{IQueryableFindAll();}通常还有另一层与存储库对话并调用FindAll()方法并执行任何操作,例如查找以字母“s”开头的产品或获取特定类别中的产品。另一个我发现很多的例子将所有的查找方法放入存储库interfaceIProductRepository{IEnumerableGetProductsInCategory(intcategoryId);IEnumerableGetProductsStartingWith(stringl

c# - 在 Visual Studio 的 Debug模式下获取问号而不是属性名称和值

我的问题是:在VisualStudio的Debug模式下,我看不到属性名称及其值。有什么建议么?UPD此错误/功能可在大学PC中重现。UPD(15.06.2012)基类放在独立的库中。基类是抽象的。并且...在对源文件(在屏幕截图中)进行更改然后运行项目之后,Debug两次工作正常。请注意立即窗口无法计算此表达式。MailProcessingViewModelContext继承了我在UPD顶部提到的那个基类。 最佳答案 这是VisualStudio中的一个错误,当您使用鼠标滚动属性列表时会导致该错误。请点击菜单底部的向下箭头。