我正在尝试创建一个包含方法的 COM 对象。该方法返回一个必须编组的数组,因为 Classic ASP 正在使用它。
我发现了有关堆栈溢出的问题,这些问题向我展示了如何针对属性而不是针对方法执行此操作。
这是我尝试过的:
public interface IMine
{
[DispId(1)]
object stringSize(string txt, string fontName, float fontSize)
{
[return: MarshalAs(UnmanagedType.Struct, SafeArraySubType = VarEnum.VT_ARRAY)]
}
}
这显然是错误的,因为我收到了错误:
The name 'MarshalAs' does not exist in the current context
这对我来说毫无意义。
实际的方法是:
public object stringSize(string txt, string fontName, float fontSize)
{
System.Drawing.SizeF result = _textSize(txt, fontName, fontSize);
return new object[] { result.Width, result.Height };
}
有人请纠正我的语法。