Tag: dynamic

对值类型和引用类型使用C#LINQ表达式

我正在使用MVC for REST,以便我可以利用Razor输出不同类型。 CSV是这些输出之一。 而不是为每种输入类型编写此模板: ID,Created,Content @foreach (var item in Model.TimeData) { @item.ID,@item.Created,”@Html.Raw(item.Content.Replace(“\””, “\”\””))” } 我想利用params和System.Linq.Expressions.Expression写下这样的东西: @{ Html.WriteCsv(Model.TimeData, p => p.ID, p => p.Created, p => p.Content); } 我开始编写一个通用的HtmlHelper并很快意识到我遇到了值类型的问题(memberExpression将为null)。 下面的代码试图写出CSV标题(ID,Created,Content),但它只输出“Content”(因为ID和Created是值类型( int和DateTime )。 public static void WriteCsv(this HtmlHelper htmlHelper, List list, params Expression<Func>[] expressions) { foreach (var expression in expressions) { MemberExpression memberExpression = expression.Body as […]

如何在动态类型上执行字符串路径?

是否可以在动态类型上执行字符串路径? 例如,我们可以写动态类型 dynamic d = myObj; var v = d.MyMethod(1,”text”).SomeProperty.Name 现在想象我有字符串路径 string path = “MyMethod(1,\”text\”).SomeProperty.Name”; var v = d. //How to applay string path to this type?

C#linq to sql – 动态选择表

我有以下场景:有一个数据库每年生成一个新的logTable。 它始于2001年,目前有11张桌子。 它们都具有相同的结构,因此具有相同的字段,索引,pk等。 我有一些叫做管理器的类 – 顾名思义 – 管理这个DB上的每个操作。 对于每个不同的表我有一个经理,除了这个logTable,我只有一个经理。 我已经阅读了很多内容并尝试了不同的东西,例如使用ITable动态获取表或者我的所有表都实现的接口。 不幸的是,我失去了强类型属性,因此我无法进行任何搜索或更新或任何事情,因为我无法使用logTable.Where(q=> q.ID == paramId) 。 考虑到这些表具有相同的结构,从2010开始搜索日志的查询可以是从2011年开始搜索日志的查询。 我只是问这个,因为我不想为每个表重写相同的代码,因为它们在结构上是相同的。 编辑 我正在使用Linq to SQL作为我的ORM。 这些表使用所有数据库操作,而不仅仅是选择。

序列化/反序列化动态对象

我有以下课程: public abstract class Animal { public Animal() { _myType = getAnimal(this.GetType().Name); } private dynamic _myType; public dynamic myType { get { return _myType; } } } public class Cat : Animal { public Cat() : base() { } } 它的辅助function: public static T CreateAnimal(string animal) { Type type = Type.GetType(typeof(Form1).FullName + “+” + animal); […]

查询FirstOrDefault的动态对象列表

以下代码将返回Enumerable动态对象。 protected override dynamic Get(int id) { Func check = x => x.ID == id; return Enumerable.Where(this.Get(), check); } 如何选择FirstOrDefault以使它是单个对象而不是Enumerable? 与此答案类似,但只想要SingleOrDefault。

在MVC中的Entity框架中动态添加表

我有一个MVC应用程序,我需要动态添加表,即动态准备表名。 有什么方法可以检查表的存在,如果不存在则将其添加到实体模型中。 如果我们能够创建表,那么我们如何使用实体模型的对象访问动态创建的表名?

DataGridView中的动态ComboBox

我有一个包含4列的DataGridView,其中一列是下拉列表(ComboBox)。 此列中的值必须是不同的,因此一旦在一行中选择了给定的下拉值,我希望它在其他行的任何下拉列表中都不可用。 如果未选择给定值,则应再次显示在下拉列表中。 我发现了一些类似例子的文章( 1,2,3 ); 但是,所有这些似乎都涉及订阅事件并手动填充ComboBox。 是否有办法单独使用数据绑定(可能是IEnumerable,基本上是一个all.Except(selected) Linq查询)? 如果单独数据绑定是不够的,有没有比我找到的例子更好的方法呢? 我对WinForms的开发有点新,所以很难分辨出“是啊……那会起作用的好建议”。

C#使用Reflection.Emit将定义的类输出到动态模块

Microsoft在此处演示了如何创建动态类: http://msdn.microsoft.com/en-us/library/system.reflection.emit.modulebuilder(v=vs.71).aspx 这定义了一个自定义对象,它定义了一个构造函数和一个方法。 我有一个类定义,有没有办法发出我已经编写的类而不是尝试编写它,如示例所示? 谢谢FacticiusVir,它已接近完成。 然而它似乎并不存在,’Countries.USA不支持该语言’ 完整代码包括FacticiusVir的答案: class DynamicEnums { public static void Main() { AppDomain domain = AppDomain.CurrentDomain; AssemblyName aName = new AssemblyName(“DynamicEnums”); AssemblyBuilder ab = domain.DefineDynamicAssembly(aName, AssemblyBuilderAccess.Save); ModuleBuilder mb = ab.DefineDynamicModule(aName.Name, aName.Name + “.dll”); ConstructorInfo referenceObjectConstructor = typeof(ReferenceObject).GetConstructor(new[] { typeof(int) }); List types = new List(); foreach(ReferenceType rt in GetTypes()) { TypeBuilder tb […]

如何通过动态reflection在运行时创建RelayCommand实例?

我正在WPF中构建MVVM应用程序,我将Menu绑定到MenuItem模型。 我的MenuItem类有以下属性: public class MenuItem { private List _Items; public MenuItem(string header, ICommand command) { Header = header; Command = command; } public MenuItem() { } public string Header { get; set; } public List Items { get { return _Items ?? (_Items = new List()); } set { _Items = value; } } public […]

使用LINQ进行动态分组

请看下面的例子。 集团条款必须是动态的。 能否指导我如何实现这一目标。 即行 { r.Portfolio, r.DataType } 必须动态构建。 不知道如何调整解决方案,如博客http://jonahacquah.blogspot.com/2012/02/groupby-multiple-columns-using-dynamic.html所示。 public class DecisionSupportData { public string Portfolio { get; set; } public string BucketName { get; set; } public string DataType { get; set; } public string ChildPortfolio { get; set; } } public void PopulateData() { List lstAllDecSupp = decisionSupportDataBindingSource.DataSource as List; List lstRmgAmt […]