/// <summary>
        /// 实现动态对象属性成员访问的方法,得到返回指定属性的值
        /// </summary>
        /// <param name="binder"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result)
        {
            var propertyName = binder.Name;
            var property     = DomainProperty.GetProperty(this.ObjectType, propertyName);

            result = GetValue(property);
            return(true);
        }
        /// <summary>
        /// 实现动态对象属性值设置的方法。
        /// </summary>
        /// <param name="binder"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public override bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value)
        {
            var propertyName = binder.Name;
            var property     = DomainProperty.GetProperty(this.ObjectType, propertyName);

            SetValue(property, value);
            return(true);
        }
            private PropertyRepositoryAttribute GetPropertyTip()
            {
                var objectType   = _constructorTip.Constructor.ReflectedType;
                var propertyName = this.Original.Name;
                var property     = DomainProperty.GetProperty(objectType, propertyName);

                return(property.RepositoryTip);
            }
Esempio n. 4
0
        private object FindObject(RemotableAttribute tip, DTObject arg)
        {
            var idProperty = DomainProperty.GetProperty(tip.ObjectType, EntityObject.IdPropertyName);
            var id         = DataUtil.ToValue(arg.GetValue("id"), idProperty.PropertyType);

            var repository = Repository.Create(tip.ObjectType);

            return(repository.Find(id, QueryLevel.None));
        }
        protected void UseDefines(DTObject arg, Action <AggregateRootDefine, object> action)
        {
            var typeName = arg.GetValue <string>("typeName");
            var defines  = RemoteType.GetDefines(typeName);

            foreach (var define in defines)
            {
                var idProperty = DomainProperty.GetProperty(define.MetadataType, EntityObject.IdPropertyName);
                var id         = DataUtil.ToValue(arg.GetValue(EntityObject.IdPropertyName), idProperty.PropertyType);
                action((AggregateRootDefine)define, id);
            }
        }
        public bool IsPropertyLoaded(string propertyName)
        {
            var property = DomainProperty.GetProperty(this.ObjectType, propertyName);

            return(this.DataProxy.IsLoaded(property));
        }
        public bool IsPropertyDirty(string propertyName)
        {
            var property = DomainProperty.GetProperty(this.ObjectType, propertyName);

            return(IsPropertyDirty(property));
        }
        public object GetIdentity()
        {
            var property = DomainProperty.GetProperty(this.Define.MetadataType, EntityObject.IdPropertyName);

            return(this.GetValue(property));
        }