Several Attributes providing Designer support for the FileSystemWatcher and BackgroundWorker components are missing for the class itself but also for some of its properties and events which results in missing Designer support.
*These affects all .NET Core versions on all OS.
This is a regression from NetFx.
From FileSystemWatcher
DescriptionAttribute is missing for the class definition.DefaultEventAttribute ("Changed") is missing for the class definition.BrowsableAttribute (false) is missing for the Site property.BrowsableAttribute (false) is missing for the Error property.BrowsableAttribute (false) is missing for the SynchronizingObject property.DefaultValueAttribute is missing for the SynchronizingObject property.DescriptionAttribute is missing for the SynchronizingObject property.BrowsableAttribute (false) is missing for the InternalBufferSize property.DefaultValueAttribute is missing for the for the InternalBufferSize property.DescriptionAttribute is missing for the for the Path property.DefaultValueAttribute is missing for the for the Path property.EditorAttribute is missing for the for the Path property.TypeConverterAttribute is missing for the for the Path property.SettingBindableAttribute is missing for the for the Path property.DescriptionAttribute is missing for the Changed event.DescriptionAttribute is missing for the Created event.DesciptionAttribute is missing for the Deleted event.DesciptionAttribute is missing for the Renamed event.DescriptionAttribute is missing for the for the Filter property.DefaultValueAttribute is missing for the for the Filter property.SettingsBindableAttribute is missing for the for the Filter property.DescriptionAttribute is missing for the EnableRaisingEvents property.DefaultValueAttribute is missing for the for the EnableRaisingEvents property.DescriptionAttribute is missing for the for the NotifyFilter property.DefaultValueAttribute is missing for the for the NotifyFilter property.DescriptionAttribute is missing for the IncludeSubdirectories property.DefaultValueAttribute is missing for the for the IncludeSubdirectories property.From BackgroundWorker
DescriptionAttribute is missing for the class definition.DefaultEventAttribute ("DoWork") is missing for the class definition.BrowsableAttribute (false) is missing for the CancellationPending property.DescriptionAttribute is missing for the for the CancellationPending property.CategoryAttribute is missing for DoWork event.DescriptionAttribute is missing for the DoWork event.BrowsableAttribute (false) is missing for the IsBusy property.DescriptionAttribute is missing for the for the IsBusy property.CategoryAttribute is missing for ProgressChanged event.DescriptionAttribute is missing for the ProgressChanged event.CategoryAttribute is missing for RunWorkerCompleted event.DescriptionAttribute is missing for the RunWorkerCompleted event.CategoryProperty is missing for the WorkerReportsProgress property.DescriptionAttribute is missing for the for the WorkerReportsProgress property.DefaultValue is missing for the for the WorkerReportsProgress property.CategoryProperty is missing for the WorkerSupportsCancellation property.DescriptionAttribute is missing for the for the WorkerSupportsCancellation property.DefaultValue is missing for the for the WorkerSupportsCancellation property.Do we want/need to enable designer support for non-visual components? AFAIK these attributes will cause a dependency on System.ComponentModel which might be overkill. I'm not sure we care about File System Watcher in particular, but I'm more curious where we draw the line and why.
@danmosemsft brought up the same things are missing from BackgroundWorker.
@safern has been looking at similar things missing in https://github.com/dotnet/runtime/issues/31428
Do we want/need to enable designer support for non-visual components? AFAIK these attributes will cause a dependency on System.ComponentModel which might be overkill.
Most of these attributes have already been pushed down low enough to avoid unnecessary dependencies. So it's more a question of bloating runtime metadata for the designer time only scenario.
Tagging subscribers to this area: @safern
See info in area-owners.md if you want to be subscribed.
So it's more a question of bloating runtime metadata for the designer time only scenario.
For EventLog, the attributes are already included. So, I think being consistent would be the right think to do?
bloating runtime metadata for the designer time only scenario
Does this really add much more runtime metadata bloat over, say, nullability attributes? :smile:
@KlausLoeffelmann @DustinCampbell is the impact only visual (description/titles in property grid)? If so I think this is not a must have for 5.0 so I will move to Future (although we'd accept a PR if offered))..?
Editor attribute was fixed by @safern with https://github.com/dotnet/runtime/commit/3130ac980c97c0664eddb04411f8f765a9f908d8
@KlausLoeffelmann @DustinCampbell can you address @danmosemsft's question?
Moving to 6.0.0. If you feel this can meet the 5.0.0 bar please fill in detail as requested.
Most helpful comment
Does this really add much more runtime metadata bloat over, say, nullability attributes? :smile: