Tag: 动态

在c#asp.net中动态分配按钮事件

你能告诉我以下代码有什么问题吗? Panel div = new Panel(); Button btn1 = new Button { Text = “Delete”, CommandArgument = “argument”, ID = “remove” }; Button btn2 = new Button { Text = “Insert”, CommandArgument = “argument2”, ID = “insert” }; btn1.Click += new EventHandler(btn_click); btn2.Click += new EventHandler(btn_click); div.Controls.Add(btn1); div.Controls.Add(btn2); ph_plan.Controls.Add(div); // where ph_plan is a placeholder […]

使用字符串动态创建(LLBLGen)Linq查询

我们需要生成在编码(设计时)期间100%未知的LINQ查询。 这是因为我们的框架中提供了逻辑,它与任何数据项目完全分开。 对于数据,我们使用LLBLGen生成的数据访问代码。 通常通过使用我们指定给框架(而不是引用)的DLL上的调用,我们可以创建代码来检索数据。 但是现在我们需要通过linq做到这一点。 我们怎么能创建一个像这样的查询: var q = from customer in m.Customer select new { customer.Number, customer.City, customer.CountryEntity.Name }; 仅来自字符串。 我们将有一个名为“customer”的字符串,因此我们知道必须从Customer检索。 然后我们会有一个包含我们想要检索的字段名的字符串[]。 如您所见,这些列可能包含复杂类型(相关字段)。 任何建议,特别是与LLBLGen结合使用,都会很棒! 谢谢,加布

如何避免使用第三方Web服务重复代码 – 不使用动态?

我正在使用第三方Web服务,其中所有方法都具有以下签名: SomeResponseClass SomeMethod(SomeRequestClass request) 每个方法都有自己的请求类和它自己的响应类。然而,所有请求都有一些共同点,并且所有响应都有共同点。 每个请求类都有一些用于标识的属性: username和token ,每个响应类都有一些属性来指示是否存在错误: status和error 。 我正在寻找一种优雅的方法来创建一个实例化我的请求的方法 – 这样我就不必在调用服务的每个方法中重复自己。 由于我无法更改类,并且没有所有类的通用接口或基类,我找到的唯一解决方案是使用dynamic : private T CreateRequest() where T : new() { if(string.IsNullOrEmpty(_Token)) { Login(); } // this has to be dynamic for the next 2 rows to pass compilation. dynamic request = new T(); request.username = _UserName; request.token = _Token; return (T)request; } […]

调用MethodInfo.MakeGenericMethod时,此键错误是什么意思?

今天我从一些旧的动态转换代码中得到了这个错误(我已经改变了最后一行并省略了堆栈跟踪的其余部分): Item has already been added. Key in dictionary: ‘Int32 Count[Object](System.Collections.Generic.IEnumerable`1[System.Object])’ Key being added: ‘Int32 Count[Object](System.Collections.Generic.IEnumerable`1[System.Object])’ —> System.ArgumentException: Item has already been added. Key in dictionary: ‘Int32 Count[Object](System.Collections.Generic.IEnumerable`1[System.Object])’ Key being added: ‘Int32 Count[Object](System.Collections.Generic.IEnumerable`1[System.Object])’ at System.Reflection.CerHashtable`2.Insert(K[] keys, V[] values, Int32& count, K key, V value) at System.Reflection.CerHashtable`2.Preallocate(Int32 count) at System.RuntimeType.RuntimeTypeCache.GetGenericMethodInfo(RuntimeMethodHandle genericMethod) at System.RuntimeType.GetMethodBase(RuntimeTypeHandle reflectedTypeHandle, RuntimeMethodHandle methodHandle) […]

.NET动态方法。 最棒的表演

在动态方法中创建动态方法的最佳方法是什么,但如果在VS中编译则具有相同的效率? 说我要创建一个计算器。 用户输入公式表示A + B / C * 0.5; 我想要的是能够创建类似Func的东西,它将接受A,B,C作为双参数并返回double。 参数类型和返回类型始终为double。 参数数量是可变的,但至少有一个。 这些公式可以经常更改/添加。 一旦公式’编译’,它将成为低延迟代码的一部分,可以被称为1000次/秒。 我需要找到简单可靠的方法来构建它,但它必须具有静态构建和优化方法的精确性能质量 。

使用配置文件中的字符串来初始化generics类型

我上课了: public class MyClass 我有一个我正在阅读的配置文件,比如说,类型为T Guid 。 我怎么做,除了使用配置文件中的字符串而不是实际类型(而不是硬编码Guid )? MyClass = new MyClass();

SiteMap导航和查询字符串

目前我正在试图弄清楚如何将动态查询字符串参数添加到我的站点地图导航菜单。 例如,用户选择他想要使用的源和版本。 我有一个简单的站点地图,可以创建导航链接,但用户选择的参数需要在查询字符串中传递。 默认地图如下所示: 现在,链接需要根据用户选择的内容动态添加参数。 例如: 希望这是相当清楚的。 如果有人需要更深入的解释,请告诉我。 谢谢

使用带有__ComObject的“dynamic”关键字时,在RuntimeBinder中泄漏

当在C#中使用带有__ComObject实例的“dynamic”关键字时,有没有人知道是否有办法防止RuntimeBinder中的内存泄漏? 我得到以下代码: var t = Type.GetTypeFromCLSID(new Guid(“BB06C0E4-D293-4f75-8A90-CB05B6477EEE”)); while (true) { dynamic o = System.Activator.CreateInstance(t); Marshal.ReleaseComObject(o); } 这会泄漏LocalVariableSymbol类实例(以及Microsoft.CSharp.RuntimeBinder.Semantics命名空间中的其他实例)。 用“对象”替换“动态”即: object o = System.Activator.CreateInstance(t); 修复泄漏,但我更喜欢继续使用动态(实际代码更复杂,并使用“动态”)。 我知道RuntimeBinder单例缓存数据,这会导致泄漏,但你知道是否有任何方法来清理缓存等? 非常感谢! 类似的问题: 内存溢出:拥有越来越多的Microsoft.CSharp.RuntimeBinder.Semantics CLR类中的内存泄漏 相关链接: https://connect.microsoft.com/VisualStudio/feedback/details/1925659 (由微软退休) https://github.com/dotnet/roslyn/issues/2887

如何在C#中的运行时以字符串格式计算布尔表达式的结果?

让我们说我从文件中读取了这个条件: Condition = “Person.Value.Status == 9” 如果“Person”是我的代码中的类,如何在运行时检查此条件是否为真?

在相同的assembly空间中动态生成模块

考虑我有一个程序在运行,它应该执行以下操作 – 应该从文本文件中读取一些代码,并且应该在它自己的Assembly空间中执行它,以便正在执行的新代码可以访问已经运行的代码的所有组件。 怎么可能? 请帮忙。