【问题标题】:Marshalas UnManagedType for an array of Interface [duplicate]用于接口数组的 Marshalas UnManagedType [重复]
【发布时间】:2013-05-01 16:27:27
【问题描述】:

我必须为需要通过 COM 从 C++ 调用的类的成员放置 MarshalType 属性。 该类的成员是接口 IEmailAddress[] 的数组。

有人可以告诉我在接口数组的情况下属性的值应该是什么。

[ProgId("EmailEntity")]
[Guid("44BEFE07-FDB7-413B-B14B-45A0F4EB6FA7")]    
public class EmailEntity : IEmailEntity
{
    /// <summary>
    /// BccRecipients
    /// </summary> 
    **public IEmailAddress[] BccRecipients;**

    /// <summary>
    /// Body
    /// </summary>
    [MarshalAs(UnmanagedType.BStr)]
    public string Body;

}

谢谢,

加根

【问题讨论】:

  • COM 不支持字段,只支持属性和方法。您之前问题的答案已经向您展示了如何正确执行此操作。它还告诉您删除所有 [MarshalAs] 属性。请不要忽视好的建议。

标签: c# c++ arrays com interface


【解决方案1】:

使其成为属性:

public IEmailAddress[] BccRecipients {get;set;}

【讨论】:

    猜你喜欢
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 2019-07-31
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    相关资源
    最近更新 更多