匿名类型和获取方法范围外的值

编程入门 行业动态 更新时间:2024-10-15 12:31:18
本文介绍了匿名类型和获取方法范围外的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在框架4.0中构建了一个asp网站,我坚持的方法,应该调用一个.cs类,并获得查询结果回到这里是我的方法调用和方法

I am building an asp site in framework 4.0, and I am stuck at the method that supposed to call a .cs class and get the query result back here is my method call and method

helper cls = new helper(); var query = cls.GetQuery(GroupID,emailCap);

2:辅助类中的方法:

2: Method in helper class:

public IQueryable<VariablesForIQueryble> GetQuery(int incomingGroupID, int incomingEmailCap) { var ctx = new some connection_Connection(); ObjectSet<Members1> members = ctx.Members11; ObjectSet<groupMember> groupMembers = ctx.groupMembers; var query = from m in members join gm in groupMembers on m.MemberID equals gm.MemID where (gm.groupID == incomingGroupID) && (m.EmailCap == incomingEmailCap) select new VariablesForIQueryble(m.MemberID, m.MemberFirst, m.MemberLast, m.MemberEmail, m.ValidEmail, m.EmailCap); //select new {m.MemberID, m.MemberFirst, m.MemberLast, m.MemberEmail, m.ValidEmail, m.EmailCap}; return query ; }

我试过上面的代码与IEnumerable也没有任何运气。这是VariablesForIQueryble类的代码:

I tried the above code with IEnumerable too without any luck. This is the code for class VariablesForIQueryble:

public class VariablesForIQueryble { private int _emailCap; public int EmailCap { get { return _emailCap; } set { _emailCap = value; } }`....................................

4:和构造函数:

4: and a constructor:

public VariablesForIQueryble(int memberID, string memberFirst, string memberLast, string memberEmail, int? validEmail, int? emailCap) { this.EmailCap = (int) emailCap; ......................... }

我似乎无法得到查询结果,首先它告诉我匿名类型的问题,我读了一个类后:链接文字;现在它告诉我的参数不支持的构造函数。现在我是一个中间开发人员,有一个简单的解决方案,或者我必须回到.aspx.cs页面。

I can't seem to get the query result back, first it told me anonymous type problem, I made a class after reading this: link text; and now it tells me constructors with parameters not supported. Now I am an intermediate developer, is there an easy solution to this or do I have to take my query back to the .aspx.cs page.

推荐答案

使用反射解决问题:

//Method in helper class public IEnumerable GetQuery(int incomingGroupID, int incomingEmailCap) { var ctx = new some_Connection(); ObjectSet<Members1> members = ctx.Members11; ObjectSet<groupMember> groupMembers = ctx.groupMembers; var query = from m in members join gm in groupMembers on m.MemberID equals gm.MemID where ((gm.groupID == incomingGroupID) && (m.EmailCap == incomingEmailCap)) //select m; select new { m.MemberID, m.MemberFirst, m.MemberLast, m.MemberEmail, m.ValidEmail, m.EmailCap }; //select new VariablesForIQueryble (m.MemberID, m.MemberFirst, m.MemberLast, m.MemberEmail, m.ValidEmail, m.EmailCap); //List<object> lst = new List<object>(); //foreach (var i in query) //{ // lst.Add(i.MemberEmail); //} //return lst; //return query.Select(x => new{x.MemberEmail,x.MemberID,x.ValidEmail,x.MemberFirst,x.MemberLast}).ToList(); return query; }

B:捕捉对象和使用反射转换这些对象的代码

B:Code to catch objects and conversion of those objects using reflection

helper cls = new helper(); var query = cls.GetQuery(GroupID,emailCap); if (query != null) { foreach (var objRow in query) { System.Type type = objRow.GetType(); int memberId = (int)type.GetProperty("MemberID").GetValue(objRow, null); string memberEmail = (string)type.GetProperty("MemberEmail").GetValue(objRow, null); } else { something else.... }

更多推荐

匿名类型和获取方法范围外的值

本文发布于:2023-11-07 00:39:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1565080.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:类型   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!