Che*_*eso 10
不对.
我理解你的问题是要求COM调用或使用.NET类.
根据此页面,您可以向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++;
}
}
Run Code Online (Sandbox Code Playgroud)
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 '
Run Code Online (Sandbox Code Playgroud)