草庐IT

dynamic-memory-allocation

全部标签

c# - System.Drawing Out of Memory Exception on Main() 方法 - C#

我的程序是一个CRM,我使用了RadRibbonBar、许多带图像的按钮、RadGridView(其中一些列包含图像)和许多其他包含图像的控件。这是一个mdi父/子程序。在许多情况下,当加载一个mdi子项或使用一些GridView时,程序会挂起并给我这个错误:OutOfMemoryExceptionoccurredinSystem.Drawing.dll我在某些部分尝试了GC.Collect()但没有成功。对于设置图像,没有代码!例如,为按钮设置图像我在visualstudio中使用了它的属性。我在可视模式下使用属性面板以这种方式设置了所有其他控件图像。这些是一些与绘图相关的设计器代码

c# - 错误 : An expression tree may not contain a dynamic operation

我使用Asp.Net4和C#,我使用EF4。我有这个查询,我收到一个错误:Anexpressiontreemaynotcontainadynamicoperationdynamico=e.Item.DataItem;varimagesContent=context.CmsImagesContents.FirstOrDefault(img=>img.ContentId==o.ContentId);使用Lamba表达式转换动态类型似乎是不可能的。如何解决这个问题,并能够在我的Lamba中使用我的对象o?谢谢附言:e.Item.DataItem属于CmsContent类型并且o.Conten

c# - 运算符 'op ' 不能应用于类型 'dynamic' 和 'lambda expression' 的操作数

我似乎无法将二元运算应用于lambda表达式、委托(delegate)和方法组。dynamicMyObject=newMyDynamicClass();MyObject>>=()=>1+1;第二行给出错误:Operator'>>='cannotbeappliedtooperandsoftype'dynamic'and'lambdaexpression'为什么?运算符功能不是由我的自定义TryBinaryOperation覆盖决定的吗? 最佳答案 这不是MyDynamicClass的问题,问题是您不能将lambda表达式作为动态表达式

c# - In-Memory HttpServer 如何知道要托管哪个 WebAPI 项目?

我想使用流行的内存托管策略针对WebAPI项目运行测试。我的测试驻留在一个单独的项目中。这是我测试的开始[TestMethod]publicvoidTestMethod1(){HttpConfigurationconfig=newHttpConfiguration();config.Routes.MapHttpRoute(name:"DefaultApi",routeTemplate:"api/{controller}/{id}",defaults:new{id=RouteParameter.Optional});HttpServerserver=newHttpServer(confi

c# - `fixed` 与 GCHandle.Alloc(obj,GCHandleType.Pinned)

我试图找出用fixed关键字定义的固定指针是如何工作的。我的想法是在内部GCHandle.Alloc(object,GCHandleType.Pinned)用于此目的。但是当我查看为以下C#代码生成的IL时:unsafestaticvoidf1(){vararr=newMyObject[10];fixed(MyObject*aptr=&arr[0]){Console.WriteLine(*aptr);}}我找不到任何GCHandle的踪迹。我看到该方法中使用固定指针的唯一提示是以下IL声明:.localsinit([0]valuetypeTestPointerPinning.MyObj

c# - C# 4.0 中 "dynamic"变量的实际用途是什么?

如果调用方法时它可能不存在,它们有什么用?这是否意味着您可以在动态对象上动态创建方法?这个有什么实际用途? 最佳答案 您实际上无法动态创建该方法-但您可以获得IDynamicMetaObject的实现(通常通过扩展DynamicObject)来响应如果该方法存在。用途:使用弱API(例如office)针对COM对象进行编程调用Ruby/Python等动态语言可能制作“可探索的”对象-想象一个类似XPath的查询,但通过方法/属性调用,例如document.RootElement.Person[5].Name["Attribute"]

c# - 为什么 dynamic 关键字不能用于动态加载的程序集?

我正在开发一个CSharp表达式求值器,您可以在下面看到它的用途。该组件生成代码并在内存中对其进行编译,然后加载生成的程序集,创建生成类的实例并运行它。结果保存在字典中。我的问题是所有运行正常,直到最后一行代码失败并出现异常:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'object'doesnotcontainadefinitionfor'FirstName'.但是,VisualStudio能够向我展示专业的变量内容:Professional={FirstName=JuanPablo,LastName=Ibañez,Cer

c# - 有没有办法在 lambda 表达式树中使用 `dynamic`?

首先,规范。我们使用MVC5、.NET4.5.1和EntityFramework6.1。在我们的MVC5业务应用程序中,我们有很多重复的CRUD代码。我的工作是“自动化”其中的大部分,这意味着将其提取到基类并使其可重用。现在,我有Controller、View模型和EF6实体模型的基类。所有EF6实体继承的我的抽象基类:publicabstractclassBaseEntitywhereTSubclass:BaseEntity{publicabstractExpression>UpdateCriterion();}UpdateCriterion方法用于AddOrUpdate数据库上下文

c# - 了解使用固定{}、Marshal.AllocHGlobal() 和 GCHandle.Alloc() 之间的区别

首先我要说的是,我在整个论坛和网络上的许多链接中查看并找到了有关使用fixed{}、Marshal.AllocHGlobal()和GCHandle.Alloc()的描述。但是,我还没有找到关于何时使用Marshal类与GCHandle类(使用和不使用fixed{})的简明解释。我正在使用第三方.NET库,它在“Buffer”类中有一个名为Readline()的方法。手册显示了以下函数原型(prototype):boolReadLine(intx1,inty1,intx2,inty2,System.IntPtrbufData,outintnumRead);bufData的描述如下:...

C# 字典性能 : Default string Comparer's GetHashCode() allocates memory in violation of guidelines, 从而破坏性能?

有anestablishedguideline获取哈希码不应分配内存,因为这会通过调用垃圾收集器对哈希表查找产生负面影响。然而,这个确切的失败是我所看到的我使用System.Collections.Generic.Dictionary的应用程序的配置文件在一个非常紧凑的循环中,我在分析器结果中发现以下内容:[3.47%]TryGetValue(TKey,TValue&)(...字典)[3.47%]FindEntry(TKey)(...字典)[3.47%]GetHashCode(string)(System.CultureAwareComparer)[3.46%]GetHashCodeO