Используйте отражение и проверьте, равен ли базовый тип типа
System.Web.UI.MasterPage
.
Так что-то вроде:
<code>foreach(Type t in Assembly.GetExecutingAssembly().GetTypes())
{
if (t.BaseType==typeof(MasterPage))
{
// do something, add to collection - whatever
}
}
Но, в зависимости от того, в какой сборке определены ваши MasterPages и того факта, что он перебирает все типы в конкретной сборке, это может определенно быть не лучшим решением.
Я блаженно не осведомлен о SharePoint, но, думаю, это решение несколько более общее.