<div>I&#39;m experimenting with how to generate various constructs from the header files.  Here is a common pattern:</div><div><br></div>Inside AppKit\NSTextAttachment.cs there is this:<div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">@interface NSMutableAttributedString (NSMutableAttributedStringAttachmentConveniences)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">- (void)updateAttachmentsFromPath:(NSString *)path;</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">@end</font></div>
</div><div><br></div><div>Which I tried to bind like this (ignoring making the C# method name better):<br><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">  </font><span class="Apple-style-span" style="white-space: pre;"><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">//- (void)updateAttachmentsFromPath:(NSString *)path;
  [Export (&quot;updateAttachmentsFromPath:&quot;)]
  void UpdateAttachmentsFromPath ([Target] NSMutableAttributedString  obj, NSString path);
</font></span></div><div><br></div></div><div>Which produced this:</div><div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">[Export (&quot;updateAttachmentsFromPath:&quot;)]</font></div><div>
<font class="Apple-style-span" face="&#39;courier new&#39;, monospace">public virtual void UpdateAttachmentsFromPath (NSMutableAttributedString obj, NSString path)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">{</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   if (obj == null)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">      throw new ArgumentNullException (&quot;obj&quot;);</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   if (path == null)</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">      throw new ArgumentNullException (&quot;path&quot;);</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   if (IsDirectBinding) {</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">      MonoMac.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (obj.Handle, selUpdateAttachmentsFromPath, path.Handle);</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   } else {</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">      MonoMac.ObjCRuntime.Messaging.void_objc_msgSendSuper_IntPtr (this.SuperHandle, sel  UpdateAttachmentsFromPath, path.Handle)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">;</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   }</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">}                </font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div></div><div>(I do no think the generated code for when IsDirectBinding == false is correct.  But that is a side issue.)</div><div>
<br></div><div>Is this the correct binding?  I would of course have to call:</div><div>NSTextAttachment textAttachment;</div><div>textAttachment.UpdateAttachmentsFromPath(attributedStringObj, path);</div><div><br></div><div>
Or would I rather call:</div><div>attributedStringObj.UpdateAttachmentsFromPath(path);</div><div><br></div></div><div>In my parser I have the ability of adding this method directly on NSMutableAttributedString, the 2nd example.  Another option would be to create an extension method to NSMutableAttributedString when parsing NSTextAttachment.  Maybe the generator should create:</div>
<div><br></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">public static class NSMutableAttributedStringAttachmentConveniences</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">{</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   public static void </font><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">UpdateAttachmentsFromPath(this NSMutableAttributedString obj, NSString path)</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   { ...</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">   }</font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">}</font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><br></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; ">So I know how to modify the parser what is the preferred solution?</span></font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; "><br></span></font></div><div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; ">Thanks,</span></font></div>
<div><font class="Apple-style-span" face="&#39;courier new&#39;, monospace"><span class="Apple-style-span" style="font-family: arial; ">Duane</span></font></div>