Udostępnij za pośrednictwem


Współdziałanie — Ostrzeżenia

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

W tej sekcji

Reguła

Opis

CA1400: Powinny istnieć punkty wejścia P/Invoke

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: Unikaj przeciążeń w interfejsach widocznych dla modelu 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: Typy automatycznego układu nie powinny być widoczne dla modelu 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: Należy wywołać GetLastError natychmiast po P/Invoke

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

CA1405: Typy podstawowe typu widocznego dla modelu COM powinny być widoczne dla modelu COM

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

CA1406: Unikaj argumentów Int64 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: Unikaj statycznych elementów członkowskich w typach widocznych dla modelu COM

COM nie obsługuje metody statyczne.

CA1408: Nie 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: Typy widoczne dla modelu COM powinny być możliwe do 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: Metody rejestracji COM powinny być dopasowane

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

CA1411: Metody rejestracji modelu 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: Oznacz interfejsy ComSource jako 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: Unikaj pól niepublicznych w typach wartościowych widocznych dla modelu 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: Oznacz logiczne argumenty P/Invoke za pomocą MarshalAs

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

CA1415: Należy poprawnie zadeklarować 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 NativeOverlapped struktury.