From: Anton L. <ant...@gm...> - 2009-04-30 06:53:45
|
Hi I have stumpled upon something that I feel is a bug or an in-consistency in the C# proxy generator. The root of the problem lies in the fact that the C# proxy generator does not use fully qualified class names, e.g. the declaration for a derived class will look something like this: public class Sub : Super { .... } this works fine, except when having to resolve classname conflicts, e.g. two different classes in two different namespaces have the same name. I have a class "View", in one namespace, which inherits from a class with the same name, in a different namespace. Each c++ namespace is mapped to two different c# namespaces, using submodules. This leads to the following code being generated: public class View : View { ... } This can easily be solved by using: %typemap(csbase, replace="1") A::View "global::A.View" unfortunately this seems to cause Swig to forget that B.View is really a derived class, which causes some issues with the Dispose method, since it insists on adorning the Dispose method with a "virtual" method. I know that this can be solved using a simple rename, but I'd prefer to retain the original class name, and I feel it should be possible to resolve this using the namespace mechanism of c#. So my question is: Is there something I have overlooked?, if not is this something that should be reported as an issue? /anton |