Как вызвать статический метод, который создает экземпляр класса из C # .dll в Python - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь использовать код из C # .dll в Python.

Класс защищен конструктором, поэтому единственный способ получить экземпляр - вызвать статический метод Instance (см. Исходный кодпример ниже).

В python я использую библиотеку clr для загрузки .dll, и я попытался вызвать экземпляр следующим образом:

import clr

clr.AddReference("Common.Namespace")
from CommonNamespace import Common

instance = Common.Instance

, но я получаю следующую ошибку:

TypeError: Исключение было сгенерировано целью вызова.

Я пытаюсь решить эту проблему в течение достаточно долгого времени - также с разными подходами - но без какой-либо удачи .. .

Пример исходного кода из моего .dll:

namespace CommonNamespace
{
  public class Common
  {
    private static Common instance;

    public static Common Instance
    {
      get
      {
        if (Common.instance == null)
          Common.instance = new Common();
        return Common.instance;
      }
    }

    protected Common()
    {
    }
  }
}

Может ли кто-нибудь мне помочь?

Спасибо!

Примечание: я хочудля вызова статического метода нестатического класса , в то время как конструктор защищен

...