是否可以通过COM公开DateTime字段?

时间:2009-06-05 08:22:20

标签: c# com serialization

如果类的一个属性类型为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传递,然后解析它?

感谢您的时间!

1 个答案:

答案 0 :(得分:3)

在COM中,Date是VT_DATE类型的变体。我想你可以利用这个: http://blogs.msdn.com/dimeby8/archive/2006/12/12/marshalling-variant-properties-in-c.aspx