我有一個用於3ds Max的自定義插件,它與後端的一些託管代碼接口。在某些情況下,我想將一個託管對象轉發給MAXScript進行直接交互,即從我的一個函數返回一個包裝對象。有沒有辦法從自定義3ds Max插件返回一個dotNetObject值?
MAXScript能夠通過Max中包含的另一個插件(msxdotNet)直接操作被管理對象(我使用的是3ds Max 2008)。它基本上包裝了一個對象,並對後期調用使用反射,但它完全自包含,並且沒有任何sdk曝光。插件dll本身也不會暴露超過Max所要求的用於添加一些頂級腳本類的最低界面。
的腳本類允許一個通過一個構造
local inst = (dotNetObject "MyPlugin.MyClass" 0 0 "arg3")
在我來說,我已經有一個我想使用一個對象的實例實例化一個新的對象。
有沒有辦法從我的插件構建一個dotNetObject包裝的實例返回到最大?
Idealy,我想有一個(C++/CLI)類似簽名的輔助功能:
Value* WrapObject(System::Object ^obj);
一些基本保障,我可以做:
- msxdotNet插件已被加載。
- msxdotNet插件和我的託管程序集位於同一AppDomain中。
爲msxdotNet插件源是包括爲SDK示例,但對於管理/清醒的緣故,修改它並重新編譯它不是一個選項。