Erstellen eines C # -Nullable-Int32 in Python (mit Python.NET), um eine C # -Methode mit einem optionalen int-Argument aufzurufen

Ich benutze Python.NET, um eine C # -Assembly zum Aufrufen von C # -Code aus Python zu laden. Das funktioniert ziemlich sauber, aber ich habe ein Problem beim Aufrufen einer Methode, die so aussieht:

Eine Methode in Our.Namespace.Proj.MyRepo:

OutputObject GetData(string user, int anID, int? anOptionalID= null)

Ich kann die Methode für den Fall aufrufen, in dem das optionale dritte Argument vorhanden ist, kann aber nicht herausfinden, was übergeben werden muss, damit das dritte Argument mit dem Null-Fall übereinstimmt.

import clr
clr.AddReference("Our.Namespace.Proj")
import System
from Our.Namespace.Proj import MyRepo

_repo = MyRepo()

_repo.GetData('me', System.Int32(1), System.Int32(2))  # works!

_repo.GetData('me', System.Int32(1))  # fails! TypeError: No method matches given arguments

_repo.GetData('me', System.Int32(1), None)  # fails! TypeError: No method matches given arguments

Das iPython-Notizbuch gibt an, dass das letzte Argument vom Typ sein sollte:

System.Nullable`1[System.Int32]

Nur nicht sicher, wie ein Objekt erstellt werden soll, das dem Null-Fall entspricht.

Irgendwelche Vorschläge zum Erstellen eines C # -erkannten Null-Objekts? Ich ging davon aus, dass das Übergeben des nativen Python-Codes "None" funktionieren würde, aber es funktioniert nicht.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage