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**
}