CA1410: COM 등록 메서드는 일치해야 합니다.

항목
RuleId CA1410
범주 Microsoft.Interoperability
주요 변경 내용 주요 변경 아님

원인

형식에서 System.Runtime.InteropServices.ComRegisterFunctionAttribute 특성으로 표시된 메서드를 선언하지만 System.Runtime.InteropServices.ComUnregisterFunctionAttribute 특성으로 표시된 메서드를 선언하지 않거나 그 반대의 경우입니다.

규칙 설명

COM(구성 요소 개체 모델) 클라이언트가 .NET 형식을 만들려면 먼저 형식을 등록해야 합니다. 사용할 수 있는 경우 ComRegisterFunctionAttribute 특성으로 표시된 메서드가 사용자 지정 코드를 실행하기 위해 등록 프로세스 중에 호출됩니다. ComUnregisterFunctionAttribute 특성으로 표시된 해당 메서드는 등록 메서드의 작업을 되돌리기 위해 등록 취소 프로세스 중에 호출됩니다.

위반 문제를 해결하는 방법

이 규칙의 위반 문제를 해결하려면 해당하는 등록 또는 등록 취소 메서드를 추가합니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다.

예시

다음 예제에서는 규칙을 위반하는 형식을 보여 줍니다. 주석으로 처리된 코드는 위반 문제의 해결 방법을 보여 줍니다.

using System;
using System.Runtime.InteropServices;

[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
{
   public class ClassToRegister
   {
   }

   public class ComRegistration
   {
      [ComRegisterFunction]
      internal static void RegisterFunction(Type typeToRegister) {}

//      [ComUnregisterFunction]
//      internal static void UnregisterFunction(Type typeToRegister) {}
   }
}

CA1411: COM 등록 메서드는 노출되면 안 됩니다.

참고 항목