Tag: 匿名类型

C#匿名实现接口(或抽象类)

在Java中,可以使用可以动态实现的匿名类扩展接口。 例: Runnable myRunnable = new Runnable() { @Override public void run() { /**/ } } (更多信息: http : //www.techartifact.com/blogs/2009/08/anonymous-classes-in-java.html#ixzz1k07mVIeO ) 这可能在C#中吗? 如果没有,什么是可行的替代方案,而不必依赖于实现过多的子类?

如何从匿名类型获取属性的值?

我有一个由Linq查询填充的数据网格。 当datagrid中的焦点行发生更改时,我需要设置一个等于该对象中某个属性的变量。 我试过了… var selectedObject = view.GetRow(rowHandle); _selectedId = selectedObject.Id; …但编译器根本不关心这个(“嵌入式语句不能是声明或标注语句”)。 看起来这个属性应该很容易访问。 在运行时检查对象显示了我期望的所有属性,我只是不知道如何访问它们。 如何访问匿名对象的属性? 编辑澄清: 我碰巧使用DevExpress XtraGrid控件。 我用Linq查询加载了这个控件,该查询由几个不同的对象组成,因此使得数据不符合我已经拥有的任何一个类(即,我无法将其转换为任何类)。 我正在使用.NET 3.5。 当我查看view.GetRow(rowHandle)方法的结果时,我得到一个如下所示的匿名类型: { ClientId = 7, ClientName = “ACME Inc.”, Jobs = 5 } 我的目标是从这个匿名类型获取ClientId,以便我可以做其他事情(例如在其中加载具有该客户端记录的表单)。 我在早期的答案中尝试了一些建议,但无法达到我可以获得此ClientId的程度。

匿名类型属性设置器

为什么匿名类型没有属性设置器? var a = new { Text = “Hello” }; a.Text = “World”; //error

动态设置C#匿名类型的属性名称

有没有办法动态设置匿名类型的属性名称? 通常我们会这样做: var anon = new { name = “Kayes” }; 现在我想动态设置属性的名称(或标识符),以便此名称可以来自XML文件或数据库。 谢谢你的回答。 不,我的需要绝对不值得所有繁琐的选择。 我只想让我的代码符合我的团队负责人开发的现有库。 但我们决定更新库以支持Dictionary类型,以便轻松解决。 Pete,我很高兴了解.NET 4.0中的动态类型 谢谢。

如何创建和访问在C#中作为参数传递的匿名类的新实例?

我创建了一个函数,它接受一个SQL命令并生成输出,然后可以用它来填充类实例的List。 代码效果很好。 我在这里包含了一个稍微简化的版本,没有exception处理仅供参考 – 如果你想直接解决问题,请跳过此代码。 如果你在这里有建议,我会全力以赴。 public List ReturnList() where T : new() { List fdList = new List(); myCommand.CommandText = QueryString; SqlDataReader nwReader = myCommand.ExecuteReader(); Type objectType = typeof (T); FieldInfo[] typeFields = objectType.GetFields(); while (nwReader.Read()) { T obj = new T(); foreach (FieldInfo info in typeFields) { for (int i = 0; i […]

在匿名类型自动初始化中是重要的字段顺序?

我有一个场景来创建匿名类型的匿名列表,我实现了使用 public static List MakeList(T itemOftype) { List newList = new List(); return newList; } static void Main(string[] args) { //anonymos type var xx = new { offsetname = x.offName, RO = y.RO1 }; //anonymos list var customlist = MakeList(xx); //It throws an error because i have given the wrong order customlist.Add(new { RO = […]

基于匿名类型创建通用类实例

我有一个ReportingComponent类,它有构造函数: public ReportingComponent(IQueryable query) {} 我有针对Northwind数据库的Linq查询, var query = context.Order_Details.Select(a => new { a.OrderID, a.Product.ProductName, a.Order.OrderDate }); 查询的类型为IQueryable ,其中’是匿名类型。 我想将查询传递给ReportingComponent以创建新实例。 做这个的最好方式是什么? 亲切的问候。

如何设置匿名对象的属性值?

这是我的代码示例: var output = new { NetSessionId = string.Empty }; foreach (var property in output.GetType().GetProperties()) { property.SetValue(output, “Test”, null); } 它发生exception:“找不到属性集方法”。 我想知道如何创建一个具有可设置属性的匿名类型。 谢谢。

将匿名类型转换为接口?

这似乎不可能吗? 那么什么是最好的解决方案? 展开/动态? public interface ICoOrd { int x { get; set; } int y { get; set; } } … ICoOrd a = new {x = 44, y = 55}; 参考: http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.internalsvisibletoattribute.aspx(Jon的建议)

合并匿名类型

如何合并两个匿名类型,以便结果包含两个源对象的属性? var source1 = new { foo = “foo”, bar = “bar” } var source2 = new { baz = “baz” } var merged = Merge(source1, source2) // <– here's where the magic should happen // merged: // { // foo = "foo", // bar = "bar", // baz = "baz" // }