///<summary> /// 구문 분석된 식을 나타내는 개체를 반환합니다. ///</summary> ///<returns> /// 구문 분석한 식을 나타내는 <see cref="T:System.Object" />입니다. ///</returns> ///<param name="expression">선언적 식의 값입니다.</param> ///<param name="propertyType">식에 의해 바인딩된 속성의 형식입니다.</param> ///<param name="context">식을 계산하는 데 필요한 컨텍스트 정보입니다.</param> ///<exception cref="T:System.Web.HttpException">리소스 식이 없거나 유효하지 않은 경우</exception> public override object ParseExpression(string expression, Type propertyType, ExpressionBuilderContext context) { expression.ShouldNotBeWhiteSpace("expression"); if (IsDebugEnabled) { log.Debug("표현식을 파싱합니다... expression=[{0}], propertyType=[{1}], context=[{2}]", expression, propertyType, context); } string classKey; string resourceKey; //+ 예 : <%$ ExternalResources : AssemblyName|ResourceFileName, ResourceKey %> 를 파싱한다. // StringResourceTool.ParseClassKey(expression, ',', out classKey, out resourceKey); var field = new ExpressionField(classKey, resourceKey); // 실제로 값이 있는지 검사한다. if (ResourceProvider.GetObject(field.ClassKey, field.ResourceKey) == null) { throw new InvalidOperationException("지정한 리소스를 찾을 수 없습니다. resource key=" + field.ResourceKey); } return(field); }
///<summary> /// 구문 분석된 식을 나타내는 개체를 반환합니다. ///</summary> ///<returns> /// 구문 분석한 식을 나타내는 <see cref="T:System.Object" />입니다. ///</returns> ///<param name="expression">선언적 식의 값입니다.</param> ///<param name="propertyType">식에 의해 바인딩된 속성의 형식입니다.</param> ///<param name="context">식을 계산하는 데 필요한 컨텍스트 정보입니다.</param> ///<exception cref="T:System.Web.HttpException">리소스 식이 없거나 유효하지 않은 경우</exception> public override object ParseExpression(string expression, Type propertyType, ExpressionBuilderContext context) { expression.ShouldNotBeWhiteSpace("expression"); if(IsDebugEnabled) log.Debug("표현식을 파싱합니다... expression=[{0}], propertyType=[{1}], context=[{2}]", expression, propertyType, context); string classKey; string resourceKey; //+ 예 : <%$ ExternalResources : AssemblyName|ResourceFileName, ResourceKey %> 를 파싱한다. // StringResourceTool.ParseClassKey(expression, ',', out classKey, out resourceKey); var field = new ExpressionField(classKey, resourceKey); // 실제로 값이 있는지 검사한다. if(ResourceProvider.GetObject(field.ClassKey, field.ResourceKey) == null) throw new InvalidOperationException("지정한 리소스를 찾을 수 없습니다. resource key=" + field.ResourceKey); return field; }