728x90
DebuggerNonUserCodeAttribute
- 디버거가 코드의 특정 부분을 사용자 코드가 아닌 것으로 처리하도록 지정하는 데 사용된다.
- 이 속성이 적용된 메서드, 속성 또는 클래스는 디버깅 세션에서 자동으로 무시된다.
- 주로 코드 생성 도구가 생성한 코드나 라이브러리 코드를 디버깅할 때 사용자에게 불필요한 디버깅 정보가 노출되는 것을 방지하는 데 사용된다.
효과
- 디버깅 세션 중에 이 메서드나 클래스에 대한 스택 추적이 생략된다.
- 예외가 발생하더라도 디버거는 이 코드의 내부로 들어가지 않고 사용자 코드로 이동한다.
- 디버거가 해당 코드의 중단점(breakpoint)을 무시한다.
GerneratedCodeAttribute
- 코드가 도구에 의해 생성되었음을 나타내는 속성이다. 이 속성은 코드 분석 도구와 같은 도구가 생성된 코드와 수동으로 작성된 코드를 구분하는 데 도움이 된다. 이 속성은 코드 생성기, 예를 들어 코드 생성 도구나 프록시 생성 도구 등이 생성한 코드에 주로 사용된다.
속성 구성
- Tool
- 코드를 생성한 도구의 이름
- Version
- 코드 생성 도구의 버전
효과
- 코드 분석 도구가 이 속성을 사용하여 경고 또는 오류를 무시할 수 있다.
- 코드를 유지 보수하는 개발자가 이 코드가 자동으로 생성된 것임을 명확히 알 수 있다.
RepeatedField
- Google Protocol Buffers(Protobuf)에서 사용되는 C# 클래스이다.
- Protocol Buffers는 데이터를 직렬화하는 방법으로, Google에서 개발했으며, 특히 네트워크 통신 및 데이터 저장소에 효율적인 데이터 포맷을 제공한다.
- RepeatedField는 프로토콜 버퍼 메시지 내에서 여러 값을 담을 수 있는 반복 필드를 나타낸다.
특징
- 반복 필드
- 프로토콜 버퍼 메시지에서 반복 필드는 여러 개의 동일한 타입의 값을 담을 수 있는 필드이다.
- 제네릭 클래스
- RepeatedField<T>는 제네릭 클래스이며, T는 저장될 값의 타입을 나타낸다.
- 자동으로 관리되는 컬렉션
- 기본적으로 List와 유사하게 동작하며, 요소를 추가, 제거 및 접근할 수 있는 다양한 메서드를 제공한다.
728x90
'언어 > C#' 카테고리의 다른 글
Task.FromResult (0) | 2024.08.01 |
---|---|
GUID(Globally Unique Identifier) (0) | 2024.08.01 |
ConcurrentDictionary<TKey, TValue> (0) | 2024.08.01 |
Select, Where, OrderBy, List.Find(All) (0) | 2024.07.31 |
LINQ(Language Integrated Query), AsEnumerable Method (0) | 2024.07.31 |