public FieldMetadata(FieldInfo field) : base(field.Name) { Type = TypeMetadata.EmitReference(field.FieldType); AttributesMetadata = TypeMetadata.EmitAttributes(field.GetCustomAttributes()); EmitModifiers(field); }
public static IEnumerable <PropertyMetadata> EmitProperties(IEnumerable <PropertyInfo> props) { return(from prop in props //where prop.GetGetMethod().GetVisible() || prop.GetSetMethod().GetVisible() select new PropertyMetadata(prop.Name, TypeMetadata.EmitReference(prop.PropertyType), TypeMetadata.EmitAttributes(prop.GetCustomAttributes()))); }
public ParameterMetadata(ParameterInfo parameter) : base(parameter.Name) { Type = TypeMetadata.EmitReference(parameter.ParameterType); if (!parameter.GetCustomAttributes().IsNullOrEmpty()) { Attributes = TypeMetadata.EmitAttributes(parameter.GetCustomAttributes()); } }
private static TypeMetadata EmitReturnType(MethodBase method) { MethodInfo methodInfo = method as MethodInfo; if (methodInfo == null) { return(null); } return(TypeMetadata.EmitReference(methodInfo.ReturnType)); }
public MethodMetadata(MethodBase method) : base(method.IsConstructor ? method.ReflectedType.Name : method.Name) { GenericArguments = !method.IsGenericMethodDefinition ? null : TypeMetadata.EmitGenericArguments(method.GetGenericArguments()).ToList(); Parameters = EmitParameters(method.GetParameters()).ToList(); AttributesMetadata = TypeMetadata.EmitAttributes(method.GetCustomAttributes()); ReturnType = EmitReturnType(method); ReflectedType = TypeMetadata.EmitReference(method.ReflectedType); EmitModifiers(method); Extension = EmitExtension(method); }
//methods private static IEnumerable <ParameterMetadata> EmitParameters(IEnumerable <ParameterInfo> parms) { return(from parm in parms select new ParameterMetadata(parm.Name, TypeMetadata.EmitReference(parm.ParameterType))); }
internal static IEnumerable <PropertyMetadata> EmitProperties(IEnumerable <PropertyInfo> props) { return(from prop in props where prop.GetGetMethod().GetVisible() || prop.GetSetMethod().GetVisible() select new PropertyMetadata(prop.Name, TypeMetadata.EmitReference(prop.PropertyType))); }