2017-10-09 4 views
1

구조체가 Type입니다. 개발자가 StructLayoutAttribute을 사용하여 구조체 레이아웃을 적용했는지 어떻게 확인할 수 있습니까? StructLayoutAttribute에 관계없이 모든 구조체에 System.RuntimeType.StructLayoutAttribute이 설정되어 있기 때문에 Type.CustomAttributes 아래에 나열되지 않습니다.structLayout이 개발자에 의해 적용되는지 확인하십시오.

+0

이것이 중요한 이유를 설명해야합니다. –

+0

내 실제 목표는 요청 바이트를 구조체에 마샬링하는 특성의 존재 여부에 따라 활성화되는 사용자 지정 ASP.Net-Core InputFormatter를 작성하는 것입니다. 그렇지 않은 경우 다른 형식 기가 사용됩니다. 그런 식으로'Content-Type' 헤더는 사용되어서는 안됩니다. –

+0

그래서 당신은 당신 자신의 속성이 어떤 포맷터가 사용되어야 하는지를 지정하기를 원할 뿐이다. –

답변

2

CustomAttribute 아니요 일반 Attribute입니다.

즉, Type.IsLayoutSequential, IsExplicitLayout 또는 Type.IsAutoLayout을 확인할 수 있음을 의미합니다.

편집 : 필드가 직접 노출 된 것으로 보입니다. Type.StructLayoutAttribute

+0

속성 세부 정보를 얻고 싶지 않습니다. 구조체 타입 정의에서 .cs 파일의'StructLayoutAttribute'가 개발자에 의해 명시 적으로 적용되는지 확인하고 싶습니다. –

+0

소스 .cs 파일이없는 @BrunoZell? 생성 된 어셈블리에서는 불가능합니다. 모든 구조체에는 레이아웃이 필요합니다. – user6144226

+0

예, 소스 파일이 없습니다. 불가능하다면 나는 그때의 반성의 힘을 과대 평가 했는가, 아니면 내가 여기서 뭔가 관용적이지 않은 것을하려고 노력하고 있는가? –