Web-Extension 컬렉션 클래스
Web-Extension 컬렉션 클래스
이 가이드는 Aspose.Words FOSS for .NET 에서 네 가지 웹-확장 컬렉션 클래스가 — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, 그리고 WebExtensionReferenceCollection — abstract 기반 클래스를 통해 단일 컬렉션 계약을 공유합니다 BaseWebExtensionCollection 베이스 클래스. 작업 창, 바인딩 및 웹 확장 속성이 실제로 무엇을 나타내는지 보려면, Web Extensions 가이드; 이 페이지는 그들이 모두 공유하는 컨테이너 API만을 다룹니다.
BaseWebExtensionCollection: 하나의 계약, 네 개의 컬렉션
BaseWebExtensionCollection은 TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, WebExtensionReferenceCollection의 기본 클래스입니다. IEnumerable<T>를 구현하고 이 네 구체 컬렉션이 노출하는 모든 멤버를 정의합니다 — 네 서브클래스 중 어느 것도 기본 클래스가 제공하는 것 외에 추가 메서드나 속성을 선언하지 않습니다.
항목 추가, 제거 및 개수 세기
Add(item)은 지정된 항목을 컬렉션에 추가합니다. Clear()은 모든 요소를 제거합니다. Remove(index)는 지정된 인덱스에 있는 항목을 제거합니다 — 이는 항목 참조가 아니라 위치 index를 사용하므로, 특정 항목을 제거하려면 먼저 해당 인덱스를 찾아야 합니다. Count는 현재 컬렉션에 있는 요소 수를 보고합니다.
컬렉션 열거하기
GetEnumerator()은(는) 컬렉션을 순회할 수 있는 열거자를 반환하므로, BaseWebExtensionCollection에서 파생된 모든 컬렉션은 유형별 반복 코드 없이도 foreach 루프를 사용해 항목을 순회할 수 있습니다.
팁 및 모범 사례
- 네 개의 컬렉션 모두 동일한 기본 계약을 공유하기 때문에,
BaseWebExtensionCollection의Add,Clear,Remove,Count,GetEnumerator멤버를 기준으로 작성된 코드는TaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollection,WebExtensionReferenceCollection전반에 걸쳐 동일하게 작동합니다. Remove(index)은(는) 위치 인덱스를 사용합니다 — 아이템 자체만 가지고 있을 경우, 먼저 컬렉션을 열거하여 인덱스를 찾거나 삽입 시점에 인덱스를 추적하십시오.- 반복하기 전에
Count을 읽고, 기본 계약이 위치 Getter를 제공하지 않으므로 수동으로 인덱싱하는 대신GetEnumerator()를 사용해 컬렉션을 직접foreach하십시오. - 컬렉션을 재설정해야 할 때는 루프에서
Remove을 반복 호출하는 대신Clear()을 호출하십시오.
일반적인 문제
| Issue | Cause | 수정 |
|---|---|---|
Remove은(는) 항목 자체를 받아들이지 않습니다 | Remove(index)은(는) BaseWebExtensionCollection-파생 컬렉션에서 위치 인덱스를 사용하고, 참조는 사용하지 않습니다 | 먼저 항목의 인덱스를 찾으세요(예: 열거하면서), 그런 다음 Remove(index)를 호출하세요 |
| 네 개 컬렉션 중 하나를 반복하는 것이 타입마다 중복되는 것처럼 느껴집니다 | 각 컬렉션은 별개의 구체 타입이지만, 모두 BaseWebExtensionCollection의 멤버를 공유합니다 | 네 개 모두에 공통인 멤버 Add, Clear, Remove, Count, GetEnumerator에 대해 공유 반복이나 유틸리티 로직을 한 번만 작성하세요 |
| 코드 조각이 어떤 구체 컬렉션 타입을 필요로 하는지 확실하지 않습니다 | 네 개의 컬렉션은 WebExtension와 Document의 서로 다른 속성에서 노출됩니다. | 확인하세요 Web Extensions 어떤 속성이 어떤 컬렉션 유형을 반환하는지에 대한 가이드 |
FAQ
왜 네 개의 웹 확장 컬렉션이 같은 방식으로 동작하나요?
이들은 모두 동일한 추상 기반 클래스인 BaseWebExtensionCollection을 상속받으며, Add, Clear, Remove, Count, GetEnumerator을 정의합니다 — 네 서브클래스 중 어느 것도 자체 멤버를 추가하지 않습니다.
이 컬렉션 중 하나에서 특정 항목을 어떻게 제거하나요?
Remove(index)을 항목의 위치 인덱스로 호출하세요 — 항목 참조만 있는 경우 먼저 컬렉션을 열거하여 인덱스를 찾아야 합니다.
이 네 개 컬렉션 중 어느 것이든 같은 방식으로 반복할 수 있나요?
예 — 네 개 모두 IEnumerable<T>부터 BaseWebExtensionCollection까지 구현하므로, GetEnumerator() / foreach은 그들 사이에서 동일하게 작동합니다.
WebExtensionBinding 또는 TaskPane 항목이 실제로 무엇을 의미하는지 어디서 배울 수 있나요?
다음 보기 Web Extensions 가이드 — 이 페이지는 공유 컬렉션 컨테이너 동작만을 다루며, 컬렉션이 보유하는 도메인 객체는 다루지 않습니다.
API Reference 요약
| 클래스/메서드 | 설명 |
|---|---|
BaseWebExtensionCollection | 네 개의 웹 확장 컬렉션 유형 모두가 공유하는 추상 기본 클래스 |
BaseWebExtensionCollection.Add(item) | 컬렉션에 항목을 추가합니다 |
BaseWebExtensionCollection.Clear() | 컬렉션의 모든 요소를 제거합니다 |
BaseWebExtensionCollection.Remove(index) | 지정된 인덱스의 항목을 제거합니다 |
BaseWebExtensionCollection.GetEnumerator() | 컬렉션을 반복하기 위한 열거자를 반환합니다. |
BaseWebExtensionCollection.Count | 컬렉션의 요소 수 |
TaskPaneCollection | 구체적인 BaseWebExtensionCollection (TaskPane개 항목) |
WebExtensionBindingCollection | 구체적인 BaseWebExtensionCollection (WebExtensionBinding개 항목) |
WebExtensionPropertyCollection | 구체적인 BaseWebExtensionCollection (총 WebExtensionProperty 항목) |
WebExtensionReferenceCollection | 구체적인 BaseWebExtensionCollection (총 WebExtensionReference 항목) |