Это, кажется, происходит только для свойств типа string , которые имеют как Getter, так и сеттер. это.
edit - Дополнительная информация:
- Целевое приложение автоматизации поставляется с библиотеками типа в .tlb, который визуально используется для создания библиотек меж. />
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using NS0;
namespace NS1
{
[ComImport]
[Guid("AAAAAAAA-BBBB-CCCC-DDDD-000000000000")]
[TypeLibType(1234)]
public interface SpecialDocument : Document
{
//...
[DispId(1234567890)]
new string Name
{
[MethodImpl(MethodImplOptions.InternalCall)]
[DispId(1234567890)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
[DispId(1234567890)]
[param: In]
[param: MarshalAs(UnmanagedType.BStr)]
set;
}
//...
[DispId(1234567891)]
new string FullName
{
[MethodImpl(MethodImplOptions.InternalCall)]
[DispId(1234567891)]
[return: MarshalAs(UnmanagedType.BStr)]
get;
}
//...
[DispId(1234567892)]
new bool IsVisible
{
[MethodImpl(MethodImplOptions.InternalCall)]
[DispId(1234567892)]
get;
[MethodImpl(MethodImplOptions.InternalCall)]
[DispId(1234567892)]
[param: In]
set;
}
}
В приведенном выше фрагменте кода из определенных свойств 3, только name должно быть доступно с get_name или set_name . Другие свойства получают доступ, как можно было бы ожидать в c#. - Оба name и fullname наследуют от родительского класса документа , определяемых на ns0 , где они имеют одинаковое определение. idispatch .
Приобретать лицензию для Fancysoft и установить продукт. /> Import Com Справочник. /> cs1545 < /li>
< /ol>
edit - Дополнительная информация из .tlb (извлечено с помощью oleview.exe): < /strong> < /p>
// From "dispinterface Document":
[
uuid(AAAAAAAA-BBBB-CCCC-DDDD-111111111111),
helpcontext(0x00001111),
dual
]
dispinterface Document {
properties:
methods:
// ...
[id(0x76543210), propget, helpcontext(0x00001234)]
BSTR Name();
[id(0x76543210), propput, helpcontext(0x00001234)]
void Name([in] BSTR* rhs);
// ...
};
// From "interface Document":
[
odl,
uuid(AAAAAAAA-BBBB-CCCC-DDDD-111111111111),
helpcontext(0x00001111),
dual,
oleautomation
]
interface Document : BaseObject {
// No member description for the 'Name' property.
};
// From "dispinterface BaseObject":
[
uuid(AAAAAAAA-BBBB-CCCC-DDDD-222222222222),
helpcontext(0x00002222),
dual
]
dispinterface BaseObject {
properties:
methods:
// ...
[id(0x76543210), propget, helpcontext(0x00001234)]
BSTR Name();
[id(0x76543210), propput, helpcontext(0x00001234)]
void Name([in] BSTR* rhs);
// ...
};
// From "interface BaseObject":
[
odl,
uuid(AAAAAAAA-BBBB-CCCC-DDDD-222222222222),
helpcontext(0x00002222),
dual,
oleautomation
]
interface BaseObject : BaseDispatch {
// ...
[id(0x76543210), propget, helpcontext(0x00001234)]
HRESULT Name([out, retval] BSTR* oNameBSTR);
[id(0x76543210), propput, helpcontext(0x00001234)]
HRESULT Name([in] BSTR* oNameBSTR);
// ...
};
Подробнее здесь: https://stackoverflow.com/questions/774 ... properties
Мобильная версия