내가 MSDN 시작하는 것이 좋습니다 것 : http://msdn.microsoft.com/en-us/library/dd233052.aspx
기본적으로, DLR은 두 가지 버전으로 존재합니다 .NET 4 일 개 선박을, 또 다른 하나는 CodePlex의 오픈 소스 버전입니다.
.NET의 DLR은 System.Core의 일부입니다. 그러나 언어와 프레임 워크는 DLR을 사용하기 위해 자체 바인더가 필요합니다. C#의 경우에는 C# 런타임 바인더이며 Microsoft.CSharp.dll에 있습니다. 따라서 C#에서 "동적"이라고 선언 한 내용은 C# 런타임 바인더에서 먼저 처리 한 다음 DLR로 이동합니다.
코드 플렉스의 DLR에는 분명히 자체 DLL (Microsoft.Scripting)이 필요했습니다.기본적으로 DLP는 IronPython 사용자가 IronPython 이상으로 IronPython을 사용하는 것보다 더 많은 곳에서 사용할 수 있다는 것을 알게되었을 때 시작되었습니다. 그래서 그들은 코드를 리팩터링하고 별도의 DLR 레이어를 만들었습니다. 이 DLR 계층은 나중에 .NET에 통합되었으며 여기에는 두 가지 버전이 있습니다.
.NET 버전은 사실 오픈 소스보다 기능이 적습니다. 따라서 .NET에서 자신 만의 동적 언어를 개발하고자한다면 오픈 소스 버전을 사용하십시오. 일부 MS 팀이 Silverlight와 같은 동적 기능을 지원하기로 결정하면 일반적으로 .NET Framework에있는 기능을 사용해야합니다.
C# 동적 기능 만 사용한다면 기본적으로 DLR에 대해 걱정할 필요가 없습니다. ExpandoObject 및 DynamicObject와 같은 멋진 클래스를 제공하는 System.Dynamic 네임 스페이스가 유일한 흥미로운 점입니다. DLR에서 많이 사용되는 네임 스페이스 중 하나 (정확히는 일부가 아닌)는 System.LINQ.Expressions이며 식 트리를 사용하는 연산에 사용됩니다. 이 릴리스에서 DLR 용으로 확장되었으며 DLR 오픈 소스 버전과 .NET Framework에서 찾을 수 있습니다.
안녕하세요. 링크를 가져 주셔서 감사합니다. 모든 동적 작업이 DLR에 어디로 파견 되는가? –
페이지를 읽었습니까? 동적 언어 런타임 (DLR)은 .NET Framework 4의 새로운 API로, C#에서 동적 유형을 지원하는 인프라와 IronPython 및 IronRuby와 같은 동적 프로그래밍 언어의 구현을 제공합니다. " –