Получить описания C # enum с python.net? - PullRequest
0 голосов
/ 31 января 2019

Я использую python.NET с C # API.DLL-файлы загружаются нормально, и я могу найти нужное мне перечисление, но не могу определить правильный синтаксис для доступа к его значениям, именам и описаниям.

Я не слишком знаком с C #, но думаю,перечисление что-то вроде

public enum Things 
{
    X1,
    X2,
    X3,
    X4
}

, и я пытаюсь сделать эквивалент, например,

var values = Enum.GetValues(typeof(Things));

, хотя я также хочу получить доступ к именам и описаниям.Есть метод GetNames и метод Overloads, который, я думаю, может быть необходим для них.

Я застрял в синтаксисе, необходимом для использования несвязанных методов в python.Net.

In[1]: Things.GetNames
Out[1]: <unbound method 'GetNames'>

Я могу получить отдельные значения

In[2]: Things.X1
Out[2]: 21

, но мне бы очень хотелось понять, как правильно получить эту информацию - и описания, которые в настоящее время я не могу найти - с использованием Python.NET.


ETA: выяснил часть того, что я делаю неправильно.Могут получать значения и имена следующим образом:

from System import Enum
values = Enum.GetValues(Things)
names = Enum.GetNames(Things)

Вышеуказанное возвращает System.String [], но я могу перебирать их в списках, чтобы получить списки имен и значений.

, новсе еще не уверены, как получить описания.Не вижу никаких очевидных методов для этого.

In [17]:dir(Enum)
Out[17]: 
['CompareTo',
 'Equals',
 'Finalize',
 'Format',
 'GetHashCode',
 'GetName',
 'GetNames',
 'GetType',
 'GetTypeCode',
 'GetUnderlyingType',
 'GetValues',
 'HasFlag',
 'IsDefined',
 'MemberwiseClone',
 'Overloads',
 'Parse',
 'ReferenceEquals',
 'ToObject',
 'ToString',
 'TryParse',
 '__call__',
 '__class__',
 '__delattr__',
 '__delitem__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__lt__',
 '__module__',
 '__ne__',
 '__new__',
 '__overloads__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__setitem__',
 '__sizeof__',
 '__str__',
 '__subclasshook__']
...