Example #1
0
 public ParameterInfo(IReflectionInfoFactory reflectionInfoFactory, Mono.Cecil.ParameterDefinition parameter)
 {
     Name        = parameter.Name;
     _attributes = parameter.CustomAttributes
                   .Select(reflectionInfoFactory.GetInfo).ToArray();
     _type = reflectionInfoFactory.GetReference(parameter.ParameterType);
 }
Example #2
0
 public NvTypeReference(IReflectionInfoFactory factory, Type type)
 {
     DeclaringType = type.DeclaringType == null ? null : factory.GetReference(type.DeclaringType);
     Namespace     = type.Namespace;
     Name          = type.IsGenericType && type.Name.Contains('`') ? string.Format("{0}<{1}>", type.Name.Substring(0, type.Name.IndexOf('`')), string.Join(",", type.GetGenericArguments().Select(t => t.IsGenericParameter ? string.Empty : factory.GetReference(t).Identity))) : type.Name;
     IsArray       = type.IsArray;
 }
Example #3
0
 public NvParameterInfo(IReflectionInfoFactory reflectionInfoFactory, ParameterInfo parameter)
 {
     Name        = parameter.Name;
     _attributes = parameter.GetCustomAttributesData()
                   .Select(reflectionInfoFactory.GetInfo).ToArray();
     _type = reflectionInfoFactory.GetReference(parameter.ParameterType);
 }
Example #4
0
 protected NvMemberInfo(IReflectionInfoFactory reflectionInfoFactory, MemberInfo member)
 {
     _baseDeclaringType = member.GetBaseDeclaringType() == null ? null : reflectionInfoFactory.GetReference(member.GetBaseDeclaringType());
     _declaringType     = member.DeclaringType == null ? null : reflectionInfoFactory.GetReference(member.DeclaringType);
     _attributes        = member.GetCustomAttributesData().Select(reflectionInfoFactory.GetInfo).ToArray();
     Name = member.Name;
 }
Example #5
0
 public ConstructorInfo(IReflectionInfoFactory reflectionInfoFactory, MethodDefinition member)
     : base(reflectionInfoFactory, member)
 {
     _isPublic       = member.IsPublic;
     _isStatic       = member.IsStatic;
     _parameters     = member.Parameters.Select(reflectionInfoFactory.GetInfo).ToArray();
     _isOnApiSurface = member.IsPublic || member.IsFamily || member.IsFamilyOrAssembly;
     _implementation = new byte[0];
 }
Example #6
0
 public NvConstructorInfo(IReflectionInfoFactory reflectionInfoFactory, ConstructorInfo member)
     : base(reflectionInfoFactory, member)
 {
     _isPublic       = member.IsPublic;
     _isStatic       = member.IsStatic;
     _parameters     = member.GetParameters().Select(reflectionInfoFactory.GetInfo).ToArray();
     _isOnApiSurface = member.IsPublicOrProtected();
     _implementation = member.GetMethodBody()?.GetILAsByteArray() ?? new byte[0];
 }
Example #7
0
        protected MemberInfo(IReflectionInfoFactory reflectionInfoFactory, IMemberDefinition member)
        {
            var baseDeclaringType = member.GetBaseDeclaringType();

            _baseDeclaringType = baseDeclaringType == null ? null : reflectionInfoFactory.GetReference(baseDeclaringType);
            _declaringType     = member.DeclaringType == null ? null : reflectionInfoFactory.GetReference(member.DeclaringType);
            _attributes        = member.CustomAttributes.Select(reflectionInfoFactory.GetInfo).ToArray();
            Name = member.Name;
        }
Example #8
0
 public NvEventInfo(IReflectionInfoFactory reflectionInfoFactory, EventInfo member)
     : base(reflectionInfoFactory, member)
 {
     _eventHandlerType = reflectionInfoFactory.GetReference(member.EventHandlerType);
     _isAbstract       = (member.AddMethod ?? member.RemoveMethod).IsAbstract;
     _isPublic         = (member.AddMethod ?? member.RemoveMethod).IsPublic || (member.RemoveMethod ?? member.AddMethod).IsPublic;
     _isStatic         = (member.AddMethod ?? member.RemoveMethod).IsStatic;
     _isVirtual        = (member.AddMethod ?? member.RemoveMethod).IsVirtual;
     _isOnApiSurface   = member.IsPublicOrProtected();
 }
Example #9
0
 public NvFieldInfo(IReflectionInfoFactory reflectionInfoFactory, FieldInfo member)
     : base(reflectionInfoFactory, member)
 {
     _type           = reflectionInfoFactory.GetReference(member.FieldType);
     _isPublic       = member.IsPublic;
     _isStatic       = member.IsStatic;
     _isReadOnly     = member.IsInitOnly;
     _isConstant     = member.IsLiteral;
     _isOnApiSurface = member.IsPublicOrProtected();
 }
Example #10
0
 public EventInfo(IReflectionInfoFactory reflectionInfoFactory, Mono.Cecil.EventDefinition member)
     : base(reflectionInfoFactory, member)
 {
     _eventHandlerType = reflectionInfoFactory.GetReference(member.EventType);
     _isAbstract       = (member.AddMethod ?? member.RemoveMethod).IsAbstract;
     _isPublic         = (member.AddMethod ?? member.RemoveMethod).IsPublic || (member.RemoveMethod ?? member.AddMethod).IsPublic;
     _isStatic         = (member.AddMethod ?? member.RemoveMethod).IsStatic;
     _isVirtual        = (member.AddMethod ?? member.RemoveMethod).IsVirtual;
     _isOnApiSurface   = IsPublic;
 }
Example #11
0
 public FieldInfo(IReflectionInfoFactory reflectionInfoFactory, Mono.Cecil.FieldDefinition member)
     : base(reflectionInfoFactory, member)
 {
     _type           = reflectionInfoFactory.GetReference(member.FieldType);
     _isPublic       = member.IsPublic;
     _isStatic       = member.IsStatic;
     _isReadOnly     = member.IsInitOnly;
     _isConstant     = member.IsLiteral;
     _isOnApiSurface = member.IsPublic || member.IsFamily || member.IsFamilyOrAssembly;
     _constant       = member.Constant;
 }
Example #12
0
 public NvPropertyInfo(IReflectionInfoFactory reflectionInfoFactory, PropertyInfo member)
     : base(reflectionInfoFactory, member)
 {
     IndexerParameters = member.GetIndexParameters().Select(reflectionInfoFactory.GetInfo).ToArray();
     Type            = reflectionInfoFactory.GetReference(member.PropertyType);
     _isPublic       = (member.GetMethod ?? member.SetMethod).IsPublic || (member.SetMethod ?? member.GetMethod).IsPublic;
     _isStatic       = (member.GetMethod ?? member.SetMethod).IsStatic;
     _isVirtual      = (member.GetMethod ?? member.SetMethod).IsVirtual;
     _isAbstract     = (member.GetMethod ?? member.SetMethod).IsAbstract;
     _isOnApiSurface = member.IsPublicOrProtected();
 }
Example #13
0
 public NvAttributeInfo(IReflectionInfoFactory reflectionInfoFactory, CustomAttributeData attribute)
 {
     _type      = reflectionInfoFactory.GetReference(attribute.AttributeType);
     _arguments =
         attribute.Constructor.GetParameters().Zip(attribute.ConstructorArguments,
                                                   (p, a) => new NvAttributeArgumentInfo(p.Name, GetArgumentValue(reflectionInfoFactory, a))).ToArray();
     if (attribute.NamedArguments != null)
     {
         _arguments = _arguments.Concat(attribute.NamedArguments.Select(
                                            a => new NvAttributeArgumentInfo(a.MemberName, GetArgumentValue(reflectionInfoFactory, a.TypedValue)))).ToArray();
     }
 }
Example #14
0
 private object GetArgumentValue(IReflectionInfoFactory reflectionInfoFactory, CustomAttributeArgument argument)
 {
     if (Equals(argument.Type.FullName, typeof(Type).FullName))
     {
         return(reflectionInfoFactory.GetReference((Mono.Cecil.TypeReference)argument.Value));
     }
     else if (argument.Type.IsArray)
     {
         return(((IEnumerable)argument.Value).OfType <CustomAttributeArgument>().Select(e => GetArgumentValue(reflectionInfoFactory, e)).ToArray());
     }
     return(argument.Value);
 }
Example #15
0
 public NvMethodInfo(IReflectionInfoFactory reflectionInfoFactory, MethodInfo method) : base(reflectionInfoFactory, method)
 {
     _isPublic             = method.IsPublic;
     _isStatic             = method.IsStatic;
     _isVirtual            = method.IsVirtual;
     _isAbstract           = method.IsAbstract;
     _isGenericMethod      = method.IsGenericMethod;
     _parameters           = method.GetParameters().Select(reflectionInfoFactory.GetInfo).ToArray();
     _genericArguments     = method.GetGenericArguments().Select(reflectionInfoFactory.GetReference).ToArray();
     _returnType           = reflectionInfoFactory.GetReference(method.ReturnParameter.ParameterType);
     _implementation       = method.GetMethodBody()?.GetILAsByteArray() ?? new byte[0];
     _isOnPublicApiSurface = method.IsPublicOrProtected();
 }
Example #16
0
        public MethodInfo(IReflectionInfoFactory reflectionInfoFactory, Mono.Cecil.MethodDefinition method) : base(reflectionInfoFactory, method)
        {
            _isPublic         = method.IsPublic;
            _isStatic         = method.IsStatic;
            _isVirtual        = method.IsVirtual;
            _isAbstract       = method.IsAbstract;
            _isGenericMethod  = method.IsGenericInstance;
            _parameters       = method.Parameters.Select(reflectionInfoFactory.GetInfo).ToArray();
            _genericArguments = method.GenericParameters.Select(reflectionInfoFactory.GetReference).ToArray();
            _returnType       = method.ReturnType != null?reflectionInfoFactory.GetReference(method.ReturnType) : null;

            _implementation       = new byte[0];
            _isOnPublicApiSurface = method.IsPublic || method.IsFamilyOrAssembly || method.IsFamily;
        }
Example #17
0
        public PropertyInfo(IReflectionInfoFactory reflectionInfoFactory, Mono.Cecil.PropertyDefinition member)
            : base(reflectionInfoFactory, member)
        {
            IndexerParameters = member.Parameters.Select(reflectionInfoFactory.GetInfo).ToArray();
            Type = reflectionInfoFactory.GetReference(member.PropertyType);
            var p = member.GetMethod ?? member.SetMethod;
            var s = member.SetMethod ?? member.GetMethod;

            _isPublic       = p.IsPublic || s.IsPublic;
            _isStatic       = p.IsStatic;
            _isVirtual      = p.IsVirtual;
            _isAbstract     = p.IsAbstract;
            _isOnApiSurface = IsPublic || p.IsFamilyOrAssembly || p.IsFamily || s.IsFamilyOrAssembly || s.IsFamily;
        }
Example #18
0
 public AttributeInfo(IReflectionInfoFactory reflectionInfoFactory, CustomAttribute attribute)
 {
     _type      = reflectionInfoFactory.GetReference(attribute.AttributeType);
     _arguments =
         attribute.Constructor.Parameters.Zip(attribute.ConstructorArguments,
                                              (p, a) => new AttributeArgumentInfo(p.Name, GetArgumentValue(reflectionInfoFactory, a))).ToArray();
     if (attribute.HasFields)
     {
         _arguments = _arguments.Concat(attribute.Fields.Select(
                                            a => new AttributeArgumentInfo(a.Name, GetArgumentValue(reflectionInfoFactory, a.Argument)))).ToArray();
     }
     if (attribute.HasProperties)
     {
         _arguments = _arguments.Concat(attribute.Properties.Select(
                                            a => new AttributeArgumentInfo(a.Name, GetArgumentValue(reflectionInfoFactory, a.Argument)))).ToArray();
     }
 }
Example #19
0
 public NvTypeInfo(IReflectionInfoFactory reflectionInfoFactory, Type type) : base(reflectionInfoFactory, type)
 {
     Base       = type.BaseType == null ? null : reflectionInfoFactory.GetReference(type.BaseType);
     Interfaces = type.GetInterfaces().Where(t => t.IsPublicOrProtected()).Select(reflectionInfoFactory.GetReference).OrderBy(i => i.Identity).ToArray();
     Members    = type
                  .GetMembers(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
                  .Select(reflectionInfoFactory.GetInfo).OrderBy(i => i.Identity).ToArray();
     GenericArguments = type.GetGenericArguments().Select(reflectionInfoFactory.GetReference).ToArray();
     _isPublic        = type.IsPublic;
     _isStatic        = type.IsSealed && type.IsAbstract && type.IsClass;
     _isOnApiSurface  = type.IsPublicOrProtected();
     IsGenericType    = type.IsGenericType;
     IsInterface      = type.IsInterface;
     IsAbstract       = type.IsAbstract;
     IsArray          = type.IsArray;
     Namespace        = type.Namespace;
     Name             = type.IsGenericType && type.Name.Contains('`') ? string.Format("{0}<{1}>", type.Name.Substring(0, type.Name.IndexOf('`')), string.Join(",", type.GetGenericArguments().Select(t => t.IsGenericParameter ? string.Empty : reflectionInfoFactory.GetReference(t).Identity))) : type.Name;
 }
 public GenericParameterInfo(IReflectionInfoFactory reflectionInfoFactory, GenericParameter member) : base(reflectionInfoFactory, member)
 {
     RequiresDefaultConstructor =
         member.Attributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint);
     TypeRequirement =
         member.Attributes.HasFlag(GenericParameterAttributes.NotNullableValueTypeConstraint)
             ? GenericTypeRequirement.Struct
             : member.Attributes.HasFlag(GenericParameterAttributes.ReferenceTypeConstraint)
                 ? GenericTypeRequirement.Class
                 : GenericTypeRequirement.None;
     TypeVariance =
         member.Attributes.HasFlag(GenericParameterAttributes.Covariant)
             ? GenericTypeVariance.Covariant
             : member.Attributes.HasFlag(GenericParameterAttributes.Contravariant)
                 ? GenericTypeVariance.Contravariant
                 : GenericTypeVariance.None;
     Base       = member.Constraints.Where(t => !t.Resolve().IsInterface).Select(reflectionInfoFactory.GetReference).FirstOrDefault();
     Interfaces = member.Constraints.Where(t => t.Resolve().IsInterface).Select(reflectionInfoFactory.GetReference).ToArray();
 }
Example #21
0
 public NvGenericParameterInfo(IReflectionInfoFactory reflectionInfoFactory, Type member) : base(reflectionInfoFactory, member)
 {
     RequiresDefaultConstructor =
         member.GenericParameterAttributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint);
     TypeRequirement =
         member.GenericParameterAttributes.HasFlag(GenericParameterAttributes.NotNullableValueTypeConstraint)
             ? GenericTypeRequirement.Struct
             : member.GenericParameterAttributes.HasFlag(GenericParameterAttributes.ReferenceTypeConstraint)
                 ? GenericTypeRequirement.Class
                 : GenericTypeRequirement.None;
     TypeVariance =
         member.GenericParameterAttributes.HasFlag(GenericParameterAttributes.Covariant)
             ? GenericTypeVariance.Covariant
             : member.GenericParameterAttributes.HasFlag(GenericParameterAttributes.Contravariant)
                 ? GenericTypeVariance.Contravariant
                 : GenericTypeVariance.None;
     Base       = member.BaseType == null ? null : reflectionInfoFactory.GetReference(member.BaseType);
     Interfaces = member.GetInterfaces().Select(reflectionInfoFactory.GetReference).ToArray();
 }
Example #22
0
 public TypeInfo(IReflectionInfoFactory reflectionInfoFactory, TypeDefinition type) : base(reflectionInfoFactory, type)
 {
     Base       = type.BaseType == null ? null : reflectionInfoFactory.GetReference(type.BaseType);
     Interfaces = type.Interfaces.Select(reflectionInfoFactory.GetReference).OrderBy(i => i.Identity).ToArray();
     Members    = type.Methods.Select(reflectionInfoFactory.GetInfo)
                  .Concat(type.Properties.Select(reflectionInfoFactory.GetInfo))
                  .Concat(type.Fields.Select(reflectionInfoFactory.GetInfo))
                  .Concat(type.NestedTypes.Select(reflectionInfoFactory.GetInfo))
                  .Concat(type.Events.Select(reflectionInfoFactory.GetInfo))
                  .OrderBy(i => i.Identity).ToArray();
     GenericArguments = type.GenericParameters.Select(reflectionInfoFactory.GetReference).ToArray();
     _isPublic        = type.IsPublic;
     _isStatic        = type.IsSealed && type.IsAbstract && type.IsClass;
     _isOnApiSurface  = type.IsPublic || type.IsNestedFamily || type.IsNestedPublic || type.IsNestedFamilyOrAssembly;
     IsGenericType    = type.IsGenericInstance;
     IsInterface      = type.IsInterface;
     IsAbstract       = type.IsAbstract;
     IsArray          = type.IsArray;
     Namespace        = type.Namespace;
     Name             = type.Name.Contains('`') ? string.Format("{0}<{1}>", type.Name.Substring(0, type.Name.IndexOf('`')), string.Join(",", type.GenericParameters.Select(t => t.IsGenericParameter ? string.Empty : reflectionInfoFactory.GetReference(t).Identity))) : type.Name;
 }
 public NvConstructorInfoFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }
Example #24
0
 public NvPropertyInfoFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }
Example #25
0
 public NvFieldInfoFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }
 public NvAttributeInfoFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }
Example #27
0
 public NvEventInfoFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }
Example #28
0
 public NvTypeInfoFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }
Example #29
0
 public TypeDiversionFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }
Example #30
0
 public NvAssemblyInfoFacts()
 {
     _factory = new NvReflectionInfoFactory();
 }