public QStatus AddMethodHandler(InterfaceDescription.Member member, MethodHandler handler)
{
InternalMethodHandler internalMethodHandler = (IntPtr bus, IntPtr m, IntPtr msg) =>
{
MethodHandler h = handler;
h(new InterfaceDescription.Member(m), new Message(msg));
};
_methodHandlerDelegateRefHolder.Add(internalMethodHandler);
GCHandle membGch = GCHandle.Alloc(member._member, GCHandleType.Pinned);
MethodEntry entry;
entry.member = membGch.AddrOfPinnedObject();
entry.method_handler = Marshal.GetFunctionPointerForDelegate(internalMethodHandler);
GCHandle gch = GCHandle.Alloc(entry, GCHandleType.Pinned);
QStatus ret = alljoyn_busobject_addmethodhandlers(_busObject, gch.AddrOfPinnedObject(), (UIntPtr)1);
gch.Free();
membGch.Free();
return ret;
}