장치 필터링 권장 사항
업데이트: 2007년 11월
이 항목에서는 ASP.NET 모바일 컨트롤에 사용할 비교 기반 필터 및 평가기 대리자 필터를 만드는 방법에 대해 설명합니다. 장치 필터는 장치 또는 모바일 장치의 속성을 지정하는 데 사용할 명명된 기준을 만들기 위한 메커니즘을 제공합니다. 이러한 필터는 Web.config 파일의 <deviceFilters> 섹션에 저장됩니다.
각 장치 필터는 하나 이상의 장치 형식과 일치할 수 있고 하나의 장치는 여러 필터와 일치할 수 있습니다. 예를 들어, Pocket PC는 색 및 HTML 기반 브라우저를 지원하는 PDA이므로 IsColor, IsHTML32 및 IsPDA라는 필터와 일치할 수 있습니다.
Web.config 파일의 <deviceFilters> 섹션에 각 필터에 대한 <filter> 요소를 추가해야 합니다.
비교 기반 필터와 평가기 대리자 기반 필터를 지정할 수 있습니다.
비교 기반 필터
비교 기반 필터는 MobileCapabilities 속성 값을 인수와 비교합니다. 비교 필터의 구문은 다음과 같습니다.
<filter
name="nameofFilter"
compare="propertyName"
argument="filterargument" />
비교 기반 필터의 경우 <filter> 요소에는 다음과 같은 세 가지 속성이 사용됩니다.
필터의 이름을 나타내는 name 특성
필터가 평가하는 속성이 포함된 compare 특성
propertyName 값의 비교 대상이 되는 인수를 나타내는 argument 특성. 인수를 지정하지 않으면 비교에 null이 사용됩니다.
다음 예제에서는 PreferredRenderingType 값이 wml11이면 필터가 일치합니다.
<filter
name="isWML11"
compare="PreferredRenderingType"
argument="wml11" />
<Choice> 요소에 필터를 사용한 경우 필터에 일치하는 항목이 있으면 ASP.NET은 <Choice> 요소 내의 템플릿에 포함된 장치별 콘텐츠를 선택합니다.
평가기 대리자 기반 필터
평가기 대리자 기반 필터는 사용자 지정 메서드에서 true 또는 false를 반환합니다. 메서드는 MobileCapabilities 클래스의 모든 속성에 대해 반환 값을 계산하며 이 반환 값은 필터가 일치하는지 여부를 확인하는 데 사용됩니다.
평가기 대리자 기반 필터의 구문은 다음과 같습니다.
<filter
name="nameOfFilter"
type="className"
method="methodName" />
평가기 대리자 기반 필터에는 다음과 같은 세 가지 속성이 사용됩니다.
필터의 이름을 나타내는 name 특성
평가기 대리자를 제공하는 클래스 형식을 나타내는 type 특성. 정규화된 이름이어야 합니다. ASP.NET은 지정된 어셈블리에서 형식을 검색합니다.
Type 클래스의 메서드 이름을 나타내는 method 특성. 이 메서드는 전달된 MobileCapabilities 인스턴스를 기준으로 현재 장치가 이 필터에 맞는지 여부를 나타내는 부울 값을 반환합니다.
다음 예제에서는 IsGPSEnabled 메서드가 true를 반환하면 필터가 일치합니다.
<filter
name="GPSEnabled"
type="MyApplication.MyCapabilityEvaluators,MyAssembly"
method="IsGPSEnabled"/>
다음 예제는 IsGPSEnabled 메서드에 대한 간략한 선언입니다.
namespace MyApplication
{
public class MyCapabilityEvaluators
{
public static bool IsGPSEnabled(
System.Web.Mobile.MobileCapabilities capabilities,
String unusedArg)
{
// Any necessary proccessing goes here.
}
}
}
Web.config 파일의 <deviceFilters> 섹션에 줄을 추가하여 필터에 대한 지원을 추가할 수 있습니다. 예를 들어, 위의 필터를 MyApplication.dll이라는 어셈블리로 컴파일한 경우에는 Web.config 파일에 다음 줄을 추가합니다.
<filter name="IsGPSEnabled"
type="MyApplication.MyCapabilityEvaluators,MyApplication"
method="IsGPSEnabled" />