Антииспользование:
Одна основная проблема с чрезмерным одноэлементным использованием состоит в том, что шаблон предотвращает легкое расширение и свопинг альтернативных реализаций. Имя класса трудно кодируется везде, где одиночный элемент используется.
var theList = Assembly.GetExecutingAssembly().GetTypes()
.Where(t => t.Namespace == "your.name.space")
.ToList();
Взгляните на этот Как получить все классы в пространстве имен? предоставленный ответ возвращает массив Type [], вы можете легко изменить это, чтобы вернуть List
Без LINQ:
Попробуйте:
Type[] types = Assembly.GetExecutingAssembly().GetTypes();
List<Type> myTypes = new List<Type>();
foreach (Type t in types)
{
if (t.Namespace=="My.Fancy.Namespace")
myTypes.Add(t);
}
Я могу думать только о циклическом переборе типов в сборке, чтобы найти те, которые находятся в правильном пространстве имен
public List<Type> GetList()
{
List<Type> types = new List<Type>();
var assembly = Assembly.GetExecutingAssembly();
foreach (var type in assembly .GetTypes())
{
if (type.Namespace == "Namespace")
{
types.Add(type);
}
}
return types;
}