如果类的一个属性类型为DateTime
,我看起来无法通过COM将类暴露给非托管客户端。
示例:
[ComVisible(true)]
public interface ITest
{
string Name { get; }
DateTime Date { get; }
}
[Serializable]
[ComVisible(true)]
public class Test : ITest
{
public string Name { get; private set; }
public DateTime Date { get; private set; }
}
只有当我在接口和实现上注释掉Date
属性时,.tlh文件才会包含Test结构(显然没有Date
)。
有什么想法吗?有没有办法表示通过COM可见的日期?我是否真的需要将Date
作为string
传递,然后解析它?
感谢您的时间!
答案 0 :(得分:3)
在COM中,Date是VT_DATE类型的变体。我想你可以利用这个: http://blogs.msdn.com/dimeby8/archive/2006/12/12/marshalling-variant-properties-in-c.aspx