다음을 통해 공유


장치 필터링 권장 사항

업데이트: 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" />

참고 항목

개념

확장된 브라우저 기능

장치별 렌더링

참조

<filter> 요소