나는 닷넷에서 다이나믹 디스패치를 사용하여 과거에는 이벤트 원동력을 사용했다. 예를 들어에 대한 접근 방식을 볼 수 있습니다. 한마디로 this article from 2009닷넷 표준 1.4의 다이나믹 디스패치
, 당신은 몇 가지 다른 클래스는 단지 Event
의 열거를 취할 수
public class QuestionAsked : Event {}
public class QuestionAnswered : Event {}
public class Event {}
특정 이벤트가 그들에게
// snip
public void Apply(IEnumerable<Event> events) => events.ToList().ForEach(Apply);
public void Apply(Event ev) => ((dynamic) this).Apply((dynamic) ev);
private void Apply(QuestionAnswered qa) {
//something
}
// end snip
을 적용 할 기본 이벤트 유형을 가지고
이 클래스는 Apply
을 충족 할 필요가 없습니다. 각 유형에 대한 hod. 걱정하지 않는 이벤트는 무시됩니다.
난 그냥 .NetStandard 1.4을 사용하여 같은 일을 시도하고 나는 개인 Apply
방법이되지 않은 유형을 적용하려고하면 나는 StackOverflowException
동적 파견 사이에 변경했습니다 얻을. Net 4.5.x 및 .Net (Core | Standard)? 이 방법을 더 이상 사용할 수 없습니까? 내가 분명히 뭔가를 가미하여 해요 -
.NET 표준 라이브러리 형식 인 .NET Framework 또는 .NET Core 호스트 응용 프로그램을 사용합니까? 스택 오버플로는 확실히 동적 디스패치 중에 자신을 호출하는 것으로부터 –
어떻게 알 수없는 이벤트에 대해 StackOverflowException을 throw하지 않았는지 궁금합니다. –
.Net 4.5.x 예제를 작성합니다 ... 내가 여기서 일하지 않았다면 100 % 확신 할 수 있었을 것이다. :) –