回答
我認爲這個想法是,你不能直接將泛型標記爲ComVisible
,但你可以讓該類型實現非泛型接口ComVisible
。
所以,對於一個普通的Baker<Recipe>
,你就需要引入類似:
[ComVisible(true)]
public interface IBake
{
Pastry Bake();
}
public class Baker<Recipe> : IBake
{
public Baker(Recipe ingredients) {...}
public Pastry Bake()
{
...
}
}
[ComVisible(true)]
public class Bakery
{
public IBake GetBaker(string recipe)
{
// somehow get recipe type from string
// and create and return Baker<Recipe>
// Client can now call IBake.Bake().
}
}
我想這是「間接」的文章在談論。我不太清楚VB.NET的控件集合與此有什麼關係,但是...
我認爲這實際上是一個錯誤(我不知道是否使用.net框架或COM Interop時使用泛型類型 解釋(使用vb.net): 如果我允許VB.NET工作(通過返回類型:Microsoft.VisualBasic.Information.TypeName)知道這是什麼類型的對象,如果我明確地將通用對象設置爲用戶窗體,我收到一個錯誤(使用任何.NET語言): {「服務器拋出一個異常。(來自HRESULT的異常:0x80010105 (RPC_E_SERVERFAULT))」} – jedd 2009-08-18 08:25:47
你讓我失去了我,恐怕... – 2009-08-18 16:56:27
- 1. WCF COM複雜類型互操作
- 2. 互補泛型類
- 3. COM互操作,C#,Visual Studio 2010中 - >嵌入互操作類型
- 4. 如何用一般類的不同泛型類型的操作數重載泛型類的操作符
- 5. 泛型類型收集整理操作
- 6. 互操作類作爲泛型類型參數時出現什麼問題?
- 7. 如何使用泛型類型的泛型列表泛型類
- 8. Java的原始類型和泛型的相互作用
- 9. Scala可互換的泛型類型
- 10. PowerShell:如何將COM對象轉換爲.NET互操作類型?
- 11. 泛型類型的使用
- 12. 類型不匹配錯誤使用COM互操作從VBA調用C#dll
- 13. 使用泛型類型
- 14. 使用泛型類型作爲切入點的返回類型
- 15. 嵌入互操作類型的問題
- 16. 跨用戶COM互操作
- 17. 使用泛型類的強類型ID
- 18. 泛型類型作爲泛型類型參數
- 19. 使用自由綁定泛型類型作爲類型參數
- 20. 使用泛型將類型對象類型轉換爲泛型類型
- 21. 使用AutoFac使用泛型複雜類型註冊泛型
- 22. 無法使用COM和.NET互操作
- 23. 在COM互操作中使用反射
- 24. 從COM互操作失敗使用AppDomain
- 25. 從ASP.NET的COM互操作
- 26. 在F#中嵌入互操作類型#
- 27. CUDA和OpenGL互操作類型
- 28. 獲取方法的MethodInfo的 - 該操作僅在泛型類型
- 29. C#暴露類COM - 泛型集合
- 30. 僅使用原始類型的本地互操作的開銷
你能詳細說明一下嗎?你說它不能做,然後問如何做。你有特定的場景嗎? – 2009-08-14 13:22:47
被引用的文章說'directlty',所以我認爲有一些'間接'使用它們的方法。 具體的例子是這一個: http://stackoverflow.com/questions/1200576/find-all-controls-on-msform-from-c – jedd 2009-08-14 13:29:24
只是添加一些信息,VB.NET必須做的'間接'作爲refrenced代碼的作品。如果我拼錯Controls集合,我得到錯誤: System.MissingMemberException'發生在Microsoft.VisualBasic.dll 因此,我需要知道什麼是缺少的東西是,讓代碼運行在C#! – jedd 2009-08-14 13:32:14