나는 ... 나는 당신의 질문에 대답 해요 있는지 확실하지 않습니다 만, 귀하의 System.Web.Compilation.ExpressionBuilder. 그냥 ... 식을 만들 :
의견을 읽고 나면 ...
는 ExpressionBuilder를 사용하여 현재 페이지에 대한 액세스 권한을 얻는 다른 방법이 있습니다. 조금에게 MSDN에서 샘플을 변경하고 페이지의 코드를 가정하여 ;-) 이
public object GetData(string token);
같은 방법을 사용하면 이것은 당신의 자리를 대체이
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
Type type1 = entry.DeclaringType;
PropertyDescriptor descriptor1 = TypeDescriptor.GetProperties(type1)[entry.PropertyInfo.Name];
CodeExpression[] expressionArray1 = new CodeExpression[1];
expressionArray1[0] = new CodePrimitiveExpression(entry.Expression.Trim());
return new CodeCastExpression(
descriptor1.PropertyType,
new CodeMethodInvokeExpression(
new CodeThisReferenceExpression(),
"GetData",
expressionArray1));
}
같은 것을 구현할 수 포함 (당신은 아마 간소화하고 데이터에 대한 액세스를 "보호"하기 위해 "유틸리티 방법"을 사용하여,이에 훨씬 더 정교한 수 물론이
(string)this.GetData("tokenname");
처럼 부르는 속성에 대한 액세스, 특별한 방법이 필요 없음, 오류 처리 등). (예를 들어)이 도움이
(string)Utilities.GetData(this, "tokenname");
희망 대신 대체
뭔가. 나는 정규 표현식을 사용하여 여러 다른 태그 페이지의 콘텐츠를 구문 분석을 제외하고 this page에 따라 렌더링 기능을 재정의
-이 질문에 기여하는 것과
꽤 재미있는 솔루션입니다. 입력을 주셔서 감사합니다. 문제는 현재 텍스트 페이지를 렌더링하기 위해 현재 페이지의 데이터가 필요합니다. 제가 현재 페이지에서 표현 작성기로 전달할 수 있는지 확실하지 않습니까? 방금 해결책을 찾았습니다 ... 다른 사람들이 궁금해 할 때를 대비하여 내 질문에 대답해야합니다. – RYFN
예, 독자 분의 해결책을 제시해야합니다. 어쨌든 나는 당신의 우려 사항 중 일부에 대답하려고 시도했다. –