MSDN은 this article about [ComVisible]
attribute입니다. 나는 한 세트가 [ComVisible(true)]
일 때 무슨 일이 일어나는 지 알지 못합니다.[ComVisible] 기본 및 공용 클래스 COM 노출은 어떻게됩니까?
MSDN은
기본값은 관리되는 형식은 COM에 볼 수 있음을 나타냅니다 사실 말합니다. 이 특성은 공용 관리 어셈블리 을 만들 필요가 없습니다. 및 유형이 표시됩니다.; COM에 기본적으로 표시됩니다. 공용 유형 만 볼 수 있습니다.
따라서 공개 유형은 기본적으로 COM에서 볼 수 있습니다. 그러나 그들은 또한 [ComVisible(true)]
으로 공개 형식 만 표시 할 수 있다고 말합니다.. 그것은 의미가 없습니다 : 공개 형식이 기본적으로 표시되면 [ComVisible(true)]
을 설정하면 공개 형식을 어떻게 볼 수 있습니까? 이미 눈에 보이면 어떻게 더 눈에 잘 듭니까?
아마 내 이해가 올바르지 않습니다. 위의 진술에 빛을 비추는 사람이 있다면 고맙겠습니다.
한 가지 혼란스러운 측면은 기본 Visual Studio 클래스 라이브러리 템플릿이 AssemblyInfo.cs에 [assembly : ComVisible (false)] 특성을 추가한다는 것입니다. 그러면 프로젝트의 모든 유형에 대한 '기본값'이 false로 설정됩니다. 프로젝트 속성에 대한 어셈블리 정보의 '어셈블리 COM- 표시'플래그가 설정합니다. – Govert
여기에 트릭이 있습니다. ComVisible의 기본값은 아무나 설정하지 않으면 true이지만 Visual Studio는이 값을 false로 설정합니다. 즉, 어셈블리를 수동으로 켜기 전까지는 어셈블리가 ComVisible이되지 않습니다. 그러나 VS2008 이전에는이 속성이 기본적으로 true로 설정되었습니다. – Johnny