【发布时间】:2011-05-18 04:14:12
【问题描述】:
我最近完成了一个课程,我们用它来将 Access 与一些 WCF 服务联系起来。当然,这意味着 .Net 类(及其所有属性)需要对 COM 可见。鉴于我使用的是 VB10 并且 Contact 类有大约 20 个属性,我继续使用自动实现属性。
令我惊讶的是,无法从 Access 的 VBA 中访问这些属性。我尝试将属性标记为 ComVisible(过去我不必对标准属性执行此操作),但它仍然无法正常工作。将自动属性更改为标准属性后,一切正常。
Public Property FirstName As String
成为
Public Property FirstName As String
Get
return _strFirstName
End Get
Set
_strFirstName = value
End Set
End Property
我的理解是两者应该是等价的。根据我在 MSDN 上阅读的内容,自动实现属性只需为您创建支持字段和 getter / setter,并且对于所有意图和目的,它们应该是相同的。
显然他们不是,那么幕后还有什么?
【问题讨论】:
-
供参考(因为我花了 5 分钟才找到),这里是关于自动属性的 MSDN 文章:msdn.microsoft.com/en-us/library/dd293589.aspx
-
我真的很讨厌人们这样做。我什至在我的帖子中提到我已经阅读了 MSDN 上的文章。那篇文章就是我问这个问题的原因。我非常清楚应该有零差异的事实;但是,我不希望在实际的现实世界中看到这种情况。
-
我知道。我发布了链接,以便 其他人 可以参考它。我想我可以在您帖子的链接中进行编辑。很抱歉造成误解。
标签: vb.net com interop properties