Czy jest możliwe dodanie kodu do istniejącej metody podczas używania Swig do zbudowania opakowania C # dla kodu C ++?

Podczas używania Swig do zawijania kodu C ++, możliwe jestdodaj metody do rodzimego typu C ++ za pomocą%extend. Jest możliwedodaj metody do klasy opakowującej C # za pomocą%typemap(cscode).

Gdzie metoda już istnieje w klasie opakowania,czy istnieje sposób na dodanie dodatkowych linii kodu?

Na przykład moja metoda opakowywania C # wygląda tak:

  public void ItemChanged(CollectionObject collectionObject, string propertyName) {
    mynamespacePINVOKE.mynamespace_DataObjectCollection_ItemChanged(swigCPtr, CollectionObject.getCPtr(collectionObject), propertyName);
    if (mynamespacePINVOKE.SWIGPendingException.Pending) throw mynamespacePINVOKE.SWIGPendingException.Retrieve();
  }

Chciałbym dodać wiersz kodu:

  public void ItemChanged(CollectionObject collectionObject, string propertyName) {
    mynamespacePINVOKE.mynamespace_DataObjectCollection_ItemChanged(swigCPtr, CollectionObject.getCPtr(collectionObject), propertyName);
    if (mynamespacePINVOKE.SWIGPendingException.Pending) throw mynamespacePINVOKE.SWIGPendingException.Retrieve();
    **insert my line of code here**
  }

questionAnswers(1)

yourAnswerToTheQuestion