Как я могу получить все классы в пространстве имен?

AFAIK, в Postgres нет преобразования json-> float, так что вы можете попробовать явное приведение (json_data->'position'->'lat')::text::float

73
задан Undo 13 November 2017 в 03:14
поделиться

3 ответа

Вам нужно будет сделать это «задом наперед»; перечислить все типы в сборке, а затем проверить пространство имен каждого типа:

using System.Reflection;
private Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
    return 
      assembly.GetTypes()
              .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal))
              .ToArray();
}

Пример использования:

Type[] typelist = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "MyNamespace");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}

Для чего-либо до .Net 2.0, где Assembly.GetExecutingAssembly () недоступен, вы будете требуется небольшое обходное решение для получения сборки:

Assembly myAssembly = typeof(<Namespace>.<someClass>).GetTypeInfo().Assembly;
Type[] typelist = GetTypesInNamespace(myAssembly, "<Namespace>");
for (int i = 0; i < typelist.Length; i++)
{
    Console.WriteLine(typelist[i].Name);
}
132
ответ дан 24 November 2019 в 12:19
поделиться

С помощью Reflection вы выполняете цикл по всем типам в сборке.

0
ответ дан 24 November 2019 в 12:19
поделиться

Вам нужно будет предоставить немного больше информации ...

Вы имеете в виду использование Reflection. Вы можете перебирать манифест сборок и получить список типов с помощью

   System.Reflection.Assembly myAssembly = Assembly.LoadFile("");

   myAssembly.ManifestModule.FindTypes()

Если это только в Visual Studio, вы можете просто получить список в окне intellisense или открыв обозреватель объектов (CTRL + W, J)

5
ответ дан 24 November 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: