Udostępnij za pośrednictwem


Ostrzeżenia interoperacyjności

Ostrzeżenia interoperacyjności obsługi interakcji z COM klientów.

W tej sekcji

Reguła

Opis

CA1400: Punkty wejścia P/Invoke powinien istnieć.

Metody publiczne lub chronione jest oznaczony za pomocą atrybutu System.Runtime.InteropServices.DllImportAttribute.Nie można zlokalizować biblioteki niezarządzanego albo metody nie można dopasować do funkcji w bibliotece.

CA1401: P/Invokes nie powinny być widoczne

Metody publiczne lub chronione w publicznych typie ma atrybut System.Runtime.InteropServices.DllImportAttribute (również implementowana przez słowo kluczowe Declare w języku Visual Basic).Takie metody nie powinna być poddana ekspozycji.

CA1402: Uniknąć przeciążenia w widocznych interfejsów COM

Gdy COM klientów są poddane działaniu metody przeciążane, tylko pierwszy przeciążenia metody zachowuje jego nazwę.Kolejne overloads jednoznacznie są zmieniane przez dołączenie do nazwy, znaku podkreślenia (_) i liczba całkowita, która odnosi się do celu zgłoszenia przeciążenia.

CA1403: Automatyczny układ typów nie powinny być widoczne COM

Widoczne COM typ wartości jest oznaczony za pomocą atrybutu System.Runtime.InteropServices.StructLayoutAttribute do LayoutKind.Auto.Można zmienić układ tych typów, między wersjami .NET Framework, która spowoduje zerwanie klientów modelu COM, które oczekują, że o określonym układzie.

CA1404: Wywołać GetLastError, niezwłocznie po wywołać/P

Wywołanie metody Marshal.GetLastWin32Error lub równoważne Win32 funkcja GetLastError i natychmiast poprzednie wywołanie nie jest platformą wywołania metody.

CA1405: Typów podstawowych widoczne typu COM powinny być widoczne COM

Typ COM widoczne pochodzi od typu, który nie jest widoczny COM.

CA1406: Uniknąć Int64 argumenty dla klientów programu Visual Basic 6

Program Visual Basic 6 COM klientów nie może uzyskać dostępu do 64-bitowe liczby całkowite.

CA1407: Uniknąć elementy statyczne w typach widoczne COM

COM nie obsługuje metody statyczne.

CA1408: Nie należy używać AutoDual ClassInterfaceType

Typy, które korzystają z interfejsu dual Umożliwiaj klientom powiązać z układu określonego interfejsu.Wszelkie zmiany w przyszłej wersji w układzie typu lub wszelkich typów podstawowych spowoduje zerwanie klientów modelu COM, które wiążą się z interfejsu.Domyślnie jeśli atrybut ClassInterfaceAttribute nie jest określony, używany jest interfejs tylko do wysyłki.

CA1409: Widoczne typy Com powinna istnieć możliwość utworzenia

Typ odwołania, które jest wyraźnie oznaczony jako widoczna dla aplikacji COM zawiera publicznego konstruktora sparametryzowana, ale nie zawiera publicznego domyślnego (bezparametrowego) konstruktora.Typ bez publicznego konstruktora domyślnego nie jest możliwość utworzenia przez COM klientów.

CA1410: Powinna być dopasowywana metod rejestracji COM

Typ deklaruje metody, która jest oznaczona za pomocą System.Runtime.InteropServices.ComRegisterFunctionAttribute atrybut, ale nie deklaruje metody, która jest oznaczona za pomocą System.Runtime.InteropServices.ComUnregisterFunctionAttribute atrybutu, lub odwrotnie.

CA1411: Metody rejestracji COM nie powinny być widoczne

Metoda, która jest oznaczona za pomocą atrybutu System.Runtime.InteropServices.ComRegisterFunctionAttribute lub atrybut System.Runtime.InteropServices.ComUnregisterFunctionAttribute jest widoczne z zewnątrz.

CA1412: Mark ComSource interfejsy jako interfejsu IDispatch

Typ jest oznaczony za pomocą atrybutu System.Runtime.InteropServices.ComSourceInterfacesAttribute, i co najmniej jeden z określonych interfejsów nie jest oznaczony za pomocą atrybutu System.Runtime.InteropServices.InterfaceTypeAttribute do ComInterfaceType.InterfaceIsIDispatch.

CA1413: Uniknąć publiczno-pola typów wartości widoczne COM

Pola niepublicznych instancji typów wartości widocznej dla modelu COM są widoczne dla COM klientów.Przejrzyj zawartość pola, aby uzyskać informacje, który nie powinien być narażony, lub będą mieć niezamierzone efekty projektu lub zabezpieczeń.

CA1414: Znak boolean P/Invoke argumenty z MarshalAs

Typ Boolean ma wiele oświadczeń w kodu niezarządzanego.

CA1415: Zadeklarować poprawnie P/Invokes

Ta reguła wygląda na platformie wywołać deklaracje metod obiektu docelowego Win32 funkcje, które mają wskaźnik do OVERLAPPED struktury parametr i odpowiadającego mu parametru zarządzanych nie jest wskaźnik do System.Threading.NativeOverlapped struktury.