public ParameterInfo(IReflectionInfoFactory reflectionInfoFactory, Mono.Cecil.ParameterDefinition parameter) { Name = parameter.Name; _attributes = parameter.CustomAttributes .Select(reflectionInfoFactory.GetInfo).ToArray(); _type = reflectionInfoFactory.GetReference(parameter.ParameterType); }
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; }
public NvParameterInfo(IReflectionInfoFactory reflectionInfoFactory, ParameterInfo parameter) { Name = parameter.Name; _attributes = parameter.GetCustomAttributesData() .Select(reflectionInfoFactory.GetInfo).ToArray(); _type = reflectionInfoFactory.GetReference(parameter.ParameterType); }
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; }
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]; }
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]; }
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; }
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(); }
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(); }
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; }
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; }
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(); }
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(); } }
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); }
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(); }
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; }
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; }
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(); } }
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(); }
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(); }
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(); }
public NvPropertyInfoFacts() { _factory = new NvReflectionInfoFactory(); }
public NvFieldInfoFacts() { _factory = new NvReflectionInfoFactory(); }
public NvAttributeInfoFacts() { _factory = new NvReflectionInfoFactory(); }
public NvEventInfoFacts() { _factory = new NvReflectionInfoFactory(); }
public NvTypeInfoFacts() { _factory = new NvReflectionInfoFactory(); }
public TypeDiversionFacts() { _factory = new NvReflectionInfoFactory(); }
public NvAssemblyInfoFacts() { _factory = new NvReflectionInfoFactory(); }