private static void ExtendTypeMembers(CodeTypeExtension typeExtension)
{
CodeTypeDeclaration type = (CodeTypeDeclaration)typeExtension.ExtendedObject;
for (int i = 0; i < type.Members.Count; i++)
{
CodeTypeMember member = type.Members[i];
CodeTypeMemberExtension memberExtension = new CodeTypeMemberExtension(member, typeExtension);
// Add the member to the correct filtered collection.
if (memberExtension.Kind == CodeTypeMemberKind.Field)
{
typeExtension.Fields.Add(memberExtension);
}
else if (memberExtension.Kind == CodeTypeMemberKind.Property)
{
typeExtension.Properties.Add(memberExtension);
}
else if (memberExtension.Kind == CodeTypeMemberKind.Method)
{
typeExtension.Methods.Add(memberExtension);
}
else if (memberExtension.Kind == CodeTypeMemberKind.Constructor ||
memberExtension.Kind == CodeTypeMemberKind.StaticConstructor)
{
typeExtension.Constructors.Add(memberExtension);
}
else if (memberExtension.Kind == CodeTypeMemberKind.Event)
{
typeExtension.Events.Add(memberExtension);
}
else
{
typeExtension.Unknown.Add(memberExtension);
}
// Finally update the collection item reference.
type.Members[i] = memberExtension;
}
}