1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using System;
- using System.Reflection;
- using Ant.Extensions;
- namespace Ant.DbExpressions
- {
- public class DbMemberExpression : DbExpression
- {
- MemberInfo _member;
- DbExpression _exp;
- public DbMemberExpression(MemberInfo member, DbExpression exp)
- : base(DbExpressionType.MemberAccess)
- {
- if (member.MemberType != MemberTypes.Property && member.MemberType != MemberTypes.Field)
- throw new ArgumentException();
- this._member = member;
- this._exp = exp;
- }
- public override Type Type
- {
- get
- {
- return this._member.GetPropertyOrFieldType();
- }
- }
- public MemberInfo Member
- {
- get { return this._member; }
- }
- /// <summary>
- /// 字段或属性的包含对象
- /// </summary>
- public DbExpression Expression
- {
- get { return this._exp; }
- }
- public override T Accept<T>(DbExpressionVisitor<T> visitor)
- {
- return visitor.Visit(this);
- }
- }
- }
|