내가 가지고있는 다음과 같은 추상 클래스주어진 표정으로 속성에 액세스하는 방법
abstract public class FooActivator<T> where T : class
{
protected static Expression<Func<Foo, Bar<T>>> ChosenProperty
public void Activate(T Paramater)
{
using (var foo = new Foo)
{
foo.ChosenProperty.Method(Paramater) //Obviously wrong, How do you do this?
}
}
}
아이디어는 내가이 기본 클래스를 상속 할 재산
Activate
에게 위해
ChosenProperty
에 새 값을 할당 할 수 있다는 것입니다
on 메소드를 호출하십시오.
Public Class MyClassFooActivator : FooActivator<MyClass>
{
new static Expression<Func<Foo, Bar<MyClass>>> ChosenProperty = x => x.PropertyOfTypeBarMyClass
}
지금 Activate(MyClass Paramater)
호출 할 준비가 된 것이며 그 식에 포함 된 속성 때문에
foo.PropertyOfTypeBarMyClass.Method(Paramater)
를 사용하여 호출합니다. ChosenProperty
유형 Expression
의 변수가 있지만, 무엇 식에 의해 선택되어 foo
의 어떤 속성을 선택하는 구문 것이기 때문에
분명히 나는, foo.ChosenProperty.Method(Paramater)
할 수없는 이유는 무엇입니까?
당신이 속성은 공개하지 정적 이후 인스턴스 수준에있을 필요가 ChosenProperty에 액세스하는 방법. – terrybozzio
나는 이것이 당신이해야 할 것보다 더 복잡하게 생각한다고 생각합니다. 당신이 일반적으로 달성하고자하는 것이 무엇인지 당신이 말해 줄까요? 관련 클래스 이름도 도움이됩니다. –
여기를보십시오 http://stackoverflow.com/questions/10193453/how-can-i-pass-a-property-in-via-a-lambda-expression?rq=1 –