从C#使用COM属性时出现错误CS1545
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从C#使用COM属性时出现错误CS1545相关的知识,希望对你有一定的参考价值。
我创建了具有读/写属性的COM接口:
[
object,
uuid(...),
dual,
pointer_default(unique)
]
IInterfaceWithProperty : IDispatch
{
[propget, id(1)] HRESULT Property([out, retval] IInterface2** ppObject);
[propput, id(1)] HRESULT Property([in] IInterface* pObject);
};
当试图在C#中使用时:
var value = object.Property;
object.Property = value;
得到以下错误:
error CS1545: Property, indexer, or event 'IInterfaceWithProperty .Property' is not supported
by the language; try directly calling accessor methods
'IInterfaceWithProperty.get_Property()' or
'IInterfaceWithProperty.set_Property(IInterface)'
可能是什么原因?
答案
错误的原因是属性在getter和setter中应该具有相同的类型。
将IInterfaceWithProperty更改为后
[
object,
uuid(...),
dual,
pointer_default(unique)
]
IInterfaceWithProperty : IDispatch
{
[propget, id(1)] HRESULT Property([out, retval] IInterface2** ppObject);
[propput, id(1)] HRESULT Property([in] IInterface2* pObject);
};
问题消失了。
以上是关于从C#使用COM属性时出现错误CS1545的主要内容,如果未能解决你的问题,请参考以下文章
ViewPager - 将数据从片段发送到活动时出现 Android 错误 setCurrentItem(int,boolean)
在 .net 5 上配置 Elmah 时出现错误 CS 7036