IronPython реализует свойства интерфейса - PullRequest
3 голосов
/ 21 марта 2012

Я реализую интерфейс, определенный в C # в ironPython, но не могу сделать работы по реализации имущества:

C #

interface IInterface
 {
  Dictionary<string, element> Elements { get; }
 }

Python:

class Implementor(IInterface):
    def __init__(self):
        self.elements = Dictionary[str, element]()

    def get_Elements(self):
        return self.elements

При вызове get_Elements я получаю следующее исключение:

Ожидаемое свойство для Elements, но найден словарь [str, element]

Что я делаю не так?

Спасибо!

1 Ответ

1 голос
/ 21 марта 2012

С помощью def Implementor() вы определяете метод, а не класс.
Правильный код: class Implementor():

class Implementor(IInterface):
    def __init__(self):
        self.elements = Dictionary[str, element]()

    def get_Elements(self):
        return self.elements

этот код отлично работает в моих тестах (я выбрал реализациипеременная экземпляра из области видимости python в C #, и свойство работает нормально).

...