4
A
回答
9
不正確。
我理解你的問題是詢問COM calling or using a .NET class。
根據this page,您可以將託管類的方法,屬性和字段公開給COM使用者。
要暴露給COM的所有託管類型,方法,屬性,字段和事件都必須是公共的。類型必須有一個公共的默認構造函數,它是唯一可以通過COM調用的構造函數。
這是否對你的工作?:
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[Guid("A1209192-723B-4325-8599-FB39D9F202D9")]
public interface ITicklee
{
[DispId(1)]
void TickleMe();
[DispId(2)]
int Count{get;}
}
[Guid("45715A3B-CA95-49f7-9889-A0022B31EF8A")]
public class Elmo : ITicklee
{
// default ctor
public Elmo() {}
private int _tickleCount;
public int Count
{
get
{
return _tickleCount;
}
}
public void TickleMe()
{
_tickleCount++;
}
}
一個VBScript測試客戶端可能是這樣的:
Sub TestTickle()
WScript.echo("")
WScript.echo("Instantiating an Elmo ...")
dim elmo
set elmo = WScript.CreateObject("Ionic.Tests.Com.Elmo")
WScript.echo("Tickling...")
For i = 1 to 5
elmo.TickleMe()
Next
WScript.echo("")
c = elmo.Count
WScript.echo("Tickle Count = " & c)
' one for the road'
elmo.TickleMe()
End Sub
call TestTickle() ' ahem '
1
如果你的意思是你不能公開的COM對象屬性爲.NET應用程序使用interop,並且COM對象是在VB中創建的,那麼你是正確的。 VB使用屬性LET作爲本機類型,使用屬性SET作爲對象類型。如果您嘗試從.NET應用程序設置COM對象的屬性,它會嘗試使用SET。如果底層屬性是本機VB類型,則失敗。
據我所知,除了使用方法而不是屬性之外,唯一的解決方案是手動操作IDL。
-3
點評:據我所知,你可以使用只讀屬性只有
相關問題
- 1. .Net to COM Interop Tester
- 2. COM Interop:索引屬性簽名問題
- 3. 在.Net COM中使IEnumerable有意義Interop
- 4. 通過.NET COM設置System.Drawing.Color Interop
- 5. 數據綁定COM Interop .Net控件
- 6. .Net Com Interop創建實例緩慢
- 7. 爲.net窗口服務註冊Com-Interop
- 8. COM程序如何找到爲COM Interop註冊的.NET DLL?
- 9. Excel Interop(Visual Studio C#) - 「Embed Interop Type」屬性
- 10. 使用COM Interop訪問來自非託管C++的c#屬性
- 11. 如何通過COM Interop訪問複雜對象的屬性?
- 12. Regasm和Com Interop的假陰性
- 13. .Net COM Interop運行COM實例並將其分配給RCW
- 14. C++/CLI com-Interop:將引用類型屬性暴露給VBA
- 15. C#+ COM Interop,確定性發佈
- 16. VB6 .NET Interop - 性能問題
- 17. 在Navision中使用Com Interop
- 18. 如何集中一個VB6引用的.net dll(com interop)dll
- 19. 爲什麼COM Interop比.NET中的P/Invoke更受歡迎?
- 20. 註冊爲COM Interop
- 21. COM Interop VB6 ActiveX EXE
- 22. .Net Core Interop Linux
- 23. 在.NET COM Interop中使用工廠方法會提高性能嗎?
- 24. Windows Mobile 6上的COM Interop
- 25. 使用.Net和Interop在COM DLL中執行VBSCript
- 26. 在.net應用程序中使用Interop時獲取COM異常
- 27. 在VBScript中確定.Net方法後綴號(COM-interop)
- 28. 「Register for COM Interop」vs「Make assembly COM visible」
- 29. 一臺用戶機器上的.NET RTD/COM Excel Interop錯誤?
- 30. 創建一個新的DLL COM Interop文件(.NET Framework 3.5)
雖然這很煩人,當你不能因低信譽發表評論,請避免回答的問題與意見。 http://stackoverflow.com/help/whats-reputation可以提供一些關於聲譽獲得(和損失)的信息 – chrisb2244 2014-09-27 15:24:49