我爲Excel創建了一個自動化插件,並且我製作了幾個函數(公式)。如何從COM中隱藏GetType()方法?
我有一個類頭看起來像這樣(這是COM可見):
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class Functions
{}
在方法的列表,我看到:
ToString(), Equals(), GetHashCode() and GetType() methods.
由於我的類的所有方法都COM可見,我應該以某種方式隱藏這些4. 我與他們的3分得手:
ToString(), Equals(), GetHashCode()
但GetType()不能被重寫。
以下是我與他們的3:
[ComVisible(false)]
public override string ToString()
{
return base.ToString();
}
[ComVisible(false)]
public override bool Equals(object obj)
{
return base.Equals(obj);
}
[ComVisible(false)]
public override int GetHashCode()
{
return base.GetHashCode();
}
這不起作用:
[ComVisible(false)]
public override Type GetType()
{
return base.GetType();
}
這裏是Visual Studio中的錯誤消息時編譯:
..GetType()': cannot override inherited member 'object.GetType()' because it is not marked virtual, abstract, or override
那麼,我應該怎麼做才能從COM中隱藏GetType()方法?
你們都是對的,夥計! 我像你說的實現 - 接口WITHOUT ToString()等... 只有我需要的方法。 在我的課,我給自己定: [ClassInterface(ClassInterfaceType.None) [標記有ComVisible特性(真)] 公共類功能:IFunctions 和我實現了從IFunctions方法。 謝謝! – ticky 2010-05-12 12:09:05