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

Ste*_*rdi 5 c# com serialization

看起来我无法通过COM将类暴露给非托管客户端,如果该类的一个属性具有类型DateTime.

例:

[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; }
}
Run Code Online (Sandbox Code Playgroud)

只有当我Date在接口和实现上注释掉属性时,.tlh文件才会包含Test结构(显然没有Date).

任何的想法?有没有办法表示通过COM可见的日期?我是否真的需要传递Date作为a string然后解析它?

感谢您的时间!

Dan*_*röm 3

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