É possível adicionar código a um método existente ao usar o Swig para criar um wrapper C # para o código C ++?
Ao usar o Swig para quebrar o código C ++, é possíveladicionar métodos ao tipo nativo do C ++ usando%extend
. É possíveladicionar métodos à classe de invólucro C # usando%typemap(cscode)
.
Onde já existe um método na classe wrapper,Existe uma maneira de adicionar linhas de código adicionais?
Por exemplo, meu método de wrapper C # se parece com isto:
public void ItemChanged(CollectionObject collectionObject, string propertyName) {
mynamespacePINVOKE.mynamespace_DataObjectCollection_ItemChanged(swigCPtr, CollectionObject.getCPtr(collectionObject), propertyName);
if (mynamespacePINVOKE.SWIGPendingException.Pending) throw mynamespacePINVOKE.SWIGPendingException.Retrieve();
}
Gostaria de adicionar uma linha de código:
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**
}