Współdziałanie — Ostrzeżenia
Ostrzeżenia interoperacyjności obsługi interakcji z COM klientów.
W tej sekcji
Reguła |
Opis |
---|---|
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. |
|
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. |
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. |
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. |
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. |
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. |
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. |