COM 노출 형식을 만들 수 있어야 합니다.
업데이트: 2007년 11월
TypeName |
ComVisibleTypesShouldBeCreatable |
CheckId |
CA1409 |
범주 |
Microsoft.Interoperability |
변경 수준 |
주요 변경 아님 |
원인
COM에 표시되는 것으로 특별히 표시된 참조 형식에 매개 변수가 있는 public 생성자가 있지만 매개 변수가 없는 public 기본 생성자가 없습니다.
규칙 설명
COM 클라이언트에서는 public 기본 생성자가 없는 형식을 만들 수 없습니다. 그러나 다른 방법으로 형식을 만들고 클라이언트에 전달할 수 있으면(예: 메서드 호출의 반환 값을 통해) COM 클라이언트에서 해당 형식에 여전히 액세스할 수 있습니다.
이 규칙에서는 System.Delegate에서 파생된 형식은 무시합니다.
기본적으로 어셈블리, public 형식, public 형식의 public 인스턴스 멤버, public 값 형식의 모든 멤버는 COM에 노출됩니다.
위반 문제를 해결하는 방법
이 규칙 위반 문제를 해결하려면 public 기본 생성자를 추가하거나 형식에서 System.Runtime.InteropServices.ComVisibleAttribute를 제거합니다.
경고를 표시하지 않는 경우
개체를 만들고 COM 클라이언트에 전달할 수 있는 다른 방법이 있으면 이 규칙에서 경고를 표시하지 않아도 안전합니다.
관련 규칙
어셈블리를 ComVisibleAttribute로 표시하십시오.