<div>&gt;Do you mean:<br>
&gt;<br>
 &gt;    struct MyBase {<br>
 &gt;    }<br>
&gt;<br>
 &gt;    struct Derived {<br>
 &gt;        MyBase xxx;<br>
 &gt;        foo bar;<br>
 &gt;    }</div><div></div><div>///===================</div><div></div><div>No, I mean:</div><div></div><div>struct NSObject { // for base classes in Objc hierarchy we holds pointer to Objective-C object in C# proxy</div>
<div>    public IntPtr _handle;</div><div>    </div><div>    public void SomeMethodAvailableForDerivedStructs() { somePInvoke( _handle ); }</div><div>}</div><div></div><div>struct SomeBaseObjcProxy : NSObject { // that not available in C#, but such inheritance work well on CLR (MS VES implementation)</div>
<div>    public void AnotherMethodAvailableForDerivedStructs() { somePInvoke( _handle ); } // note that &quot;_handle&quot; is field of NSObject</div><div>}</div><div></div><div>///===================</div><div></div><div>
In raw Objective-C you can&#39;t work with OBJECTS directly but can work with them via POINTERS to OBJECTS. My approach - is represent such pointers via structs with size of such pointer. Creating classes ( mobjc,monobjc,cocoa# ) for such case leads to unnecessary GC overheads, structs there perform better.</div>
<div></div><div>///===================</div><div></div><div>&gt;I took a more serious look at NObjective, and I have to say that<br>&gt;even if it is fast, it does not support the C# override model to<br>&gt;override settings in a base class.   So it is not really suitable as a general purpose framework.<br>
</div><div></div><div>All Objective-C methods are virtual by default in Objective-C runtime, so if method is redefined in derived Objective-C class there is no need to &#39;override&#39; it in generated proxy.</div><div><br>
</div><div>WBR,<br>Eugeny Grishul<br></div>