2015-09-21 53 views
1

我有類Item的以下代碼。當我在VBA中使用此代碼時,可以輕鬆創建新實例並訪問屬性。但是當我嘗試從ListViewItem繼承時,它的構建在C#中是正常的,但是在創建新實例時COM對象在VBA中中斷。C#中的繼承COM

//Working 
[ComVisible(true)] 
[ClassInterface(ClassInterfaceType.AutoDual)] 
public class Item 
{ 
    public string Name { get; set; } 
    public string Text { get; set; } 
} 

//Fails 
public class Item :ListViewItem 

VBA

1: Dim x As CSActiveX.Item 
    2: Set x = New CSActiveX.Item 

具有繼承這部分(2線)引發錯誤:Automation Error

任何指導,非常感謝。

+0

我已將'Item'標記爲'ComVisible'並且'ListViewItem'類是隻讀的,因爲它從'System.Windows.Forms'繼承了 – cyboashu

+0

是否有任何特殊原因是您從'System.Windows.Forms.ListViewItem '而不是有一個平坦的POCO? – Dai

+0

平坦的POCO是什麼?無論如何,我從ListViewItem'''因爲我想從C#中的列表視圖控件返回一個實際的項目inherting。它是一個自定義的.net控件,通過COM在VBA中使用 – cyboashu

回答

1

如果您使用的是regasm,那麼請確保您使用Codebase開關。