After a few hours of troubleshooting I resolved the issue by changing

#include "Transform.h"

to

#include <SDK/Transform.h>

in the SDK header file for "SDK/IdentityTransform.h"

I suspect maybe SWIG failed to resolve "Transform.h", so instead of using the inheritance it fell back to the basic wrapper structure.

C. Floyd

-----Original Message-----
From: David Piepgrass [mailto:dpiepgrass@mentoreng.com]
Sent: Wed 11/24/2010 2:06 PM
To: Charles Floyd
Subject: RE: c# inheritance working for some classes, but not others?

There is no information here we could use to diagnose the problem.

From: Charles Floyd [mailto:cfloyd@jht.com]
Sent: Wednesday, November 24, 2010 11:28 AM
To: swig-user@lists.sourceforge.net
Subject: [Swig-user] c# inheritance working for some classes, but not others?


I admit that I'm somewhat new to SWIG. I've used it for Java and now C#. However, I just ran into an issue where one of my c++ classes "IdentityTransform" which inherits from the abstract class "Transform" isn't following that same structure for my target language c#. It is however working for most other classes (havent found an issue with other classses yet). It's strange because my SWIG interface file is rather simple. You can see that it works fine for "TangibleGroup", where as "IdentityTransform" should inherit from "Transform". The "IdentityTransform.h" file clearly inherits from Transform. Thanks in advance for any tips.

//mymod.i
%module(directors="1") mymod

%include "std_string.i"
%include "std_wstring.i"
%include "std_map.i"
%include "std_vector.i"
%include "std_list.i"
%include "std_pair.i"
%include "std_queue.i"
%include "std_set.i"
%include "std_stack.i"
%include "typemaps.i"
%include "stdint.i"

%feature("director");

/*
 ... some nested structure workarounds from the documentation ...
*/


%{
//my SDK includes
#include "mymod.h"
%}

#include "mymod.h"

/*
 ... more nested structure workarounds from the documentation ...
*/


//mymod.h
#include <SDK/Transform.h>
#include <SDK/IdentityTransform.h>
#include <SDK/Tangible.h>
#include <SDK/Serializable.h>
#include <SDK/TangibleGroup.h>

//Serializable.cs (BASE)
...
public class Serializable : IDisposable {
...

//Transform.cs (ABSTRACT)
...
public class Transform : Serializable {
...

//IdentityTransform .cs
...
public class IdentityTransform : IDisposable {
...

//Tangible.cs
...
public class Tangible : Serializable {
...

//TangibleGroup.cs
...
public class TangibleGroup : Tangible {
...


C. Floyd

Please consider the environment before printing this e-mail.

JHT CONFIDENTIALITY NOTICE: This email message, including any attachments,
may contain confidential information exclusively provided for intended
recipients or authorized representatives of the intended recipients. Any
dissemination of this e-mail by anyone other than an intended recipient or
authorized representatives of the intended recipients is strictly prohibited.
If you are not a named recipient or authorized representatives of the intended
recipients, you are prohibited from any further viewing of the e-mail or any
attachments or from making any use of the e-mail or attachments. If you believe
you have received this e-mail in error, notify the sender immediately and
permanently delete the e-mail, any attachments, and all copies thereof from any
drives or storage media and destroy any printouts of the e-mail or attachments.