public static ClassWrapper CreateFromType(TypeRegistry registry, Type type, string name) { ClassWrapper wrapper = new ClassWrapper(registry, type, name); foreach (MemberInfo info in type.GetMembers(BindingFlags.Public | BindingFlags.Static)) { switch (info.MemberType) { case MemberTypes.Method: if (!wrapper.HasAttribute(info.Name)) { wrapper.SetAttribute(info.Name, CreateMultiMethod(registry, type, info.Name)); } break; case MemberTypes.Field: wrapper.SetAttribute(info.Name, FieldWrapper.Create(registry, (FieldInfo)info)); break; case MemberTypes.Property: wrapper.SetAttribute(info.Name, PropertyWrapper.Create(registry, (PropertyInfo)info)); break; } } registry.AddTypeMapping(type, wrapper, new ObjectTypeMapping(wrapper, registry)); return(wrapper); }
public static ClassWrapper CreateFromType(TypeRegistry registry, Type type, string name) { ClassWrapper wrapper = new ClassWrapper (registry, type, name); foreach (MemberInfo info in type.GetMembers (BindingFlags.Public | BindingFlags.Static)) { switch (info.MemberType) { case MemberTypes.Method: if (!wrapper.HasAttribute (info.Name)) { wrapper.SetAttribute (info.Name, CreateMultiMethod (registry, type, info.Name)); } break; case MemberTypes.Field: wrapper.SetAttribute (info.Name, FieldWrapper.Create (registry, (FieldInfo)info)); break; case MemberTypes.Property: wrapper.SetAttribute (info.Name, PropertyWrapper.Create (registry, (PropertyInfo)info)); break; } } registry.AddTypeMapping (type, wrapper, new ObjectTypeMapping (wrapper, registry)); return wrapper; }