Prosty przykład mógłby wyglądać następująco.
C# klasa biblioteka o nazwie Kod IntellisenseDemo
using System;
using System.Runtime.InteropServices;
namespace IntellisenseDemo
{
[ComVisible(true)]
[Guid("41B3F5BC-A52B-4AED-90A0-F48BC8A391F1")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IIntellisenseDemo
{
int Number { get; set; }
string TestString(string name);
}
[ComVisible(true)]
[Guid("20EBC3AF-22C6-47CE-B70C-7EBBA12D0A29")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("IntellisenseDemo.Demo")]
public class Demo : IIntellisenseDemo
{
public int Number { get; set; }
public string TestString(string name)
{
throw new NotImplementedException();
}
}
}
Uwaga: [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
wskazuje, że interfejs jest narażony na COM jako dispinterface, który umożliwia jedynie późnego wiązania.
[ClassInterface(ClassInterfaceType.None)]
oznacza, że CLR nie udostępnia interfejsu klasy dla tego typu. Klienci COM mogą wywoływać członków tej klasy przy użyciu metod z interfejsu IIntellisenseDemo
.
regasm
C:\Windows\Microsoft.NET\Framework\v4.0.30319>regasm C:\Temp\IntellisenseDemo.dll /tlb: C:\Temp\IntellisenseDemo.tlb
VBA
Widziałeś [to?] (Http://stackoverflow.com/questions/684747/are-there-attributes-in-c-sharp-for-affecting-how-intellisense-displays-class-me) . – dee
Pytanie brzmi "jak" iw moim przypadku nie wyświetla się wcale. – Vityata
Przejdź do Przeglądarki obiektów w VBA, kliknij prawym przyciskiem myszy w panelu członków i wybierz "Pokaż ukrytych członków". Powinieneś wtedy widzieć wszystkich członków w przeglądarce obiektów, a otrzymasz Intellisense w okienkach kodu. – ThunderFrame