상속: ITypeRepository
예제 #1
0
        protected virtual AttachableMember LookupAttachableMember(string name)
        {
            var getter = UnderlyingType.GetTypeInfo().GetDeclaredMethod("Get" + name);
            var setter = UnderlyingType.GetTypeInfo().GetDeclaredMethod("Set" + name);

            return(TypeRepository.GetAttachableMember(name, getter, setter));
        }
예제 #2
0
        private XamlType LookupType()
        {
            var underlyingType = DeclaringType.UnderlyingType;
            var property       = underlyingType.GetRuntimeProperty(Name);

            property.ThrowIfNull(() => new ParseException($"Cannot find a property named \"{Name}\" in the type {underlyingType}"));

            return(TypeRepository.GetByType(property.PropertyType));
        }
예제 #3
0
        protected virtual IEnumerable <XamlMember> LookupDependencies()
        {
            var underlyingType = DeclaringType.UnderlyingType;
            var metadata       = TypeRepository.GetMetadata(underlyingType);

            if (metadata != null)
            {
                var namesOfPropsWeDependOn = metadata.GetMemberDependencies(this.Name);
                return(namesOfPropsWeDependOn.Select(s => DeclaringType.GetMember(s)));
            }
            else
            {
                return(new List <XamlMember>());
            }
        }
예제 #4
0
 private XamlType LookupType()
 {
     return(TypeRepository.GetByType(getter.ReturnType));
 }