내 팀이 .NET 4.0을 4.6.2로 타겟팅하는 응용 프로그램을 업그레이드하는 중입니다. 네, 파티에 늦었습니다. 그러나 결코 늦지 않는 것이 좋습니다.Expression Body 차이점 .NET 4 및 .NET 4.6.2
우리의 응용 프로그램에는 표현식에서 반환 된 메서드의 MethodInfo를 반환하는 확장 메서드가 있습니다. 우리가있는 경우 즉, :
public class Foo
{
public void DoSomething() { }
}
한 다음
Expression<Func<Foo, Action>> = f => f.DoSomething;
는 다음 방법을 해봐요을 MethodInfo를 반환 우리의 확장 방법은()
코드는에 큰 일을 표현했다 .NET 4.0에서는 작동하지만 .NET 4.6.2에서는 작동하지 않습니다. 이후 코드를 작동하도록 변경했지만 내 질문은 누구든지 .NET 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1 및 4.6.2의 릴리스 노트가 문서화 될 수있는 위치를 알고 있습니까? 나는 아무것도 읽지 않고 여러 번 읽고 읽었습니다.
- https://msdn.microsoft.com/en-us/library/hh367887(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/dn458352(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/dn720543(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/dn833127(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/mt620033(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/mt712575(v=vs.110).aspx :
이 난을 통해 찾아 봤는데 릴리즈 노트는
.NET 디버깅 로컬 변수를 비교하면 3,691,363,210
, 당신은 표현의 방법 기관은 .NET 4.0과 4.6.2 사이의 차이점을 볼 수 있습니다 4.6.2 :
.NET에서는이 작업을 수행하는 방법을 알았습니다. 변경 사항이 이미 나와있는 솔루션과 대조되는 부분에 관심이 있습니다.
미리 감사드립니다.
예에서는 위임자를 사용하고 있기 때문에 대리인에게 액세스하는 방법이 변경되어 있기 때문에 가능합니다.거기에 관한 질문이 내 즐겨 찾기 어딘가에 있지만 나는 내 전화에있어. 그러나 이것을 표현식으로 바꿀 수 있습니다. x = f => f.DoSomething();'그런 식으로 MethodInfo에 접근하십시오. (선호해야합니다) –
pinkfloydx33
여기에 나와있는 해답 중 하나가 도움이 될 것입니다. 'Expression >''Expression>'http://stackoverflow.com/a/26976055/491907이 아닙니다. 본질적으로 델리게이트 인 메소드 그룹을 사용하려고하고 있으며 추가로 "unwraping "방법을 얻으려면 –
pinkfloydx33
특별히 문서에 관한 질문에 대답하기 위해 변경 사항은 4.5 버전에 관한 것이지만 시스템의 악용 사례로 명시 적으로 문서화 된 것은 아닌지 의심 스럽습니다. 'Delegate' 또는'MethodInfo.CreateDelegate'와 관련하여 찾을 수있는 것이 있다면 – pinkfloydx33