DiagnosticSourceEventSource supports base class properties#55613
DiagnosticSourceEventSource supports base class properties#55613stephentoub merged 1 commit intodotnet:mainfrom
Conversation
Fixes dotnet#41300 Previously DiagnosticSourceEventSource would only iterate and recognize properties that were declared on the most derived type. Now it can capture properties that were inherited from a base class too.
|
Tagging subscribers to this area: @tarekgh, @tommcdon, @pjanotti Issue DetailsFixes #41300 Previously DiagnosticSourceEventSource would only iterate and recognize properties that were declared on the most derived type. @dotnet/dotnet-diag - can someone review?
|
|
EventSource also only looks at the derived type's fields and methods. I remember it being an intentional decision, but this was back in 2014ish and I can't remember why it was intentional. There was some scenario it broke to include the base class fields/methods. |
I can think if the base and inherited classes define non-virtual same property. public class A { public int P1 { get; set; } }
public class B : A { public new int P1 { get; set; } } |
|
Thanks guys! EventSource requires every method to be annotated with [Event] or [NonEvent] so I could easily imagine including new methods would break the init logic for some pre-existing EventSource. I think that will be a fairly different scenario than this one. It is theoretically possible that someone wrote a DiagnosticSourceEventSource listener that will fail if more properties than expected are enumerated, but it seems unlikely:
|
…debugger_custom_views * 'main' of github.com:thaystg/runtime: (125 commits) [wasm] [debugger] Support method calls (dotnet#55458) [debugger] Fix debugging after hot reloading (dotnet#55599) Inliner: Extend IL limit for profiled call-sites, allow inlining for switches. (dotnet#55478) DiagnosticSourceEventSource supports base class properties (dotnet#55613) [mono] Fix race during mono_image_storage_open (dotnet#55201) [mono] Add wrapper info for native func wrappers. (dotnet#55602) H/3 and Quic AppContext switch (dotnet#55332) Compression.ZipFile support for Unix Permissions (dotnet#55531) [mono] Fix skipping of static methods during IMT table construction. (dotnet#55610) Combine System.Private.Xml TrimmingTests projects (dotnet#55606) fix name conflict with Configuration class (dotnet#55597) Finish migrating RSAOpenSsl from RSA* to EVP_PKEY* Disable generic math (dotnet#55540) Obsolete CryptoConfig.EncodeOID (dotnet#55592) Address System.Net.Http.WinHttpHandler's nullable warnings targeting .NETCoreApp (dotnet#54995) Enable Http2_MultipleConnectionsEnabled_ConnectionLimitNotReached_ConcurrentRequestsSuccessfullyHandled (dotnet#55572) Fix Task.WhenAny failure mode when passed ICollection of zero tasks (dotnet#55580) Consume DistributedContextPropagator in DiagnosticsHandler (dotnet#55392) Add property ordering feature (dotnet#55586) Reduce subtest count in Reflection (dotnet#55537) ...
Fixes #41300
Previously DiagnosticSourceEventSource would only iterate and recognize properties that were declared on the most derived type.
Now it can capture properties that were inherited from a base class too.
@dotnet/dotnet-diag - can someone review?