Excel用の自動化アドインを作成し、いくつかの関数(数式)を作成しました。
ヘッダーが次のようになっているクラスがあります(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();
}
コンパイル時のVisualStudioのエラーメッセージは次のとおりです。
..GetType()': cannot override inherited member 'object.GetType()' because it is not marked virtual, abstract, or override
では、GetType()メソッドをCOMから非表示にするにはどうすればよいですか?