草庐IT

包装类

全部标签

c# - 我可以使用装饰器模式来包装方法体吗?

我有一堆具有不同签名的方法。这些方法与脆弱的数据连接交互,因此我们经常使用帮助类来执行重试/重新连接等。像这样:MyHelper.PerformCall(()=>{doStuffWithData(parameters...)});这工作正常,但它会使代码有点困惑。我更愿意做的是像这样装饰与数据连接交互的方法:[InteractsWithData]protectedstringdoStuffWithData(parameters...){//dostuff...}基本上,无论何时调用doStuffWithData,该方法的主体都会作为Action传递给MyHelper.PerformCa

c# - Tesseract 3 (OCR) - .NET 包装器

http://code.google.com/p/tesseractdotnet/我在让Tesseract在我的VisualStudio2010项目中工作时遇到问题。我试过console和winforms,结果都一样。我遇到了一个声称可以在VS2010中工作的其他人的dll:http://code.google.com/p/tesseractdotnet/issues/detail?id=1我正在添加对dll的引用,可以在上面网站的帖子64的附件中找到。每次我构建我的项目时,我都会收到一个AccessViolationException,说明已尝试读取或写入protected内存。pu

c# - 是否有必要将 StreamWriter 包装在 using block 中?

几天前我发布了一些这样的代码:StreamWriterwriter=newStreamWriter(Response.OutputStream);writer.WriteLine("col1,col2,col3");writer.WriteLine("1,2,3");writer.Close();Response.End();我被告知我应该将StreamWriter包装在一个usingblock中以防出现异常。这样的改变会使它看起来像这样:using(StreamWriterwriter=newStreamWriter(Response.OutputStream)){writer.Wr

c# - 包装 System.Numerics.VectorS 的成本很高——为什么?

TL;DR:为什么包装System.Numerics.Vectors类型很昂贵,我能做些什么吗?考虑以下代码:[MethodImpl(MethodImplOptions.NoInlining)]privatestaticlongGetIt(longa,longb){varx=AddThem(a,b);returnx;}privatestaticlongAddThem(longa,longb){returna+b;}这会将JIT转换为(x64):00007FFDA3F94500learax,[rcx+rdx]00007FFDA3F94504ret和x86:00EB2E20pushebp0

c# - 在 Visual Studio 2010 Express 中从 dll 自动生成 C# 包装器类?

我的一位同事告诉我,VisualStudio允许指向.dll并自动神奇地生成C#包装器类。这真的可能吗?如果是这样,人们如何实现这一目标?我浏览了网页,但什么也没找到!谢谢大家!我想我也会分享这些资源,Howto:CreateCOMWrappers由@Darin提供,ConsumingUnmanagedDLLFunctions 最佳答案 3个案例:DLL代表一个托管程序集=>您直接在项目中引用它并使用它DLL代表一个COM对象=>你可以使用tlbimp.exe生成托管包装器的实用程序DLL表示具有一些导出函数的非托管库。那是最艰难的

c# - 如何为 log4net 创建异步包装器?

默认情况下,log4net是一种同步日志记录机制,我想知道是否有办法使用log4net进行异步日志记录? 最佳答案 如果你去log4net网站,你可以找到一些示例,其中至少有一个是异步Appender。http://logging.apache.org/log4net/release/example-apps.html请注意,我没有使用这些示例中的任何一个,因此我不能以任何方式保证它们。这是从他们的代码存储库中的log4net示例区域到实际异步附加程序的链接:http://svn.apache.org/viewvc/logging/

c# - 用于包装 C 库的 P/Invoke 或 C++/CLI

我们有一个中等大小(40多个函数)的CAPI,需要从C#项目中调用。这些功能在逻辑上分解成几个类,这些类将构成提供给项目其余部分的API。是否有任何客观原因更喜欢P/Invoke或C++/CLI以获得该API下的互操作性,在稳健性、可维护性、部署等方面……?我能想到的可能但不是问题的问题是:C++/CLI需要单独的程序集;P/Invoke类可以在主程序集中。(我们已经有多个程序集,无论如何都会有CDLL,所以不是主要问题。)这两种方法的性能似乎没有明显差异。我不确定的问题是:我的感觉是,如果存在互操作问题,C++/CLI将更易于调试;这是真的吗?语言熟悉度-足够多的人知道C#和C++,

c# - OpenCV 的 .Net(dotNet)包装器?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我见过其中一些。opencvdotnet,SharperCV,EmguCV,OneonCodeProject.有人对这些有任何经验吗?我在CodeProject上玩了一会儿,但是当我尝试做任何复杂的事情时,我得到了一些令人讨厌的无法捕获的异常(即Msgbox异常)。跨平台(支持Mono)最好。

c# - 将同步代码包装到异步调用中

我在ASP.NET应用程序中有一个方法,它需要花费大量时间才能完成。根据缓存状态和用户提供的参数,在一个用户请求期间最多可能调用此方法3次。每次调用大约需要1-2秒才能完成。该方法本身是对服务的同步调用,不可能覆盖实现。因此,对服务的同步调用如下所示:publicOutputModelCalculate(InputModelinput){//dosomestuffreturnService.LongRunningCall(input);}而该方法的用法是(注意,该方法的调用可能会发生不止一次):privatevoidMakeRequest(){//alotofotherstuff:pr

c# - 记录器包装器最佳实践

我想在我的应用程序中使用nlogger,也许将来我需要更改日志记录系统。所以我想使用日志外观。您是否知道对现有示例如何编写这些示例的任何建议?或者只是给我链接到这个领域的一些最佳实践。 最佳答案 我曾经使用日志外观,例如Common.Logging(甚至隐藏我自己的CuttingEdge.Logging库),但现在我使用DependencyInjectionpattern.这允许我将记录器隐藏在应用程序定义的抽象背后,该抽象遵循DependencyInversionPrinciple和InterfaceSegregationPrin