The title pretty much says it all. When I\'m doing some reflection through my classes, will the MemberInfo.GetCustomAttributes() method preserve the order of attributes on a
It seems to me that your problem really stems from the fact that the forms are specifying where they appear in your menu, which means you're trying to build a menu by combining all the forms in an assembly. It might be easier if you specify the structure of the menu separately from any forms, and resolve the forms from various propeties/attributes defined on the class corresponding to a menu item.
e.g.
public class MenuItem
{
string Text { get; }
Type FormType { get; }
ICollection
Then when a menu-item is selected, resolve the form somehow and display it. This approach has the disadvantage that any new forms need require a change to the code specifying the menu structure along with the form itself, but that will be quite minor...