Skip to content

Implement the ITypeDiscoveryService service#10247

Merged
Tanya-Solyanik merged 5 commits intodotnet:mainfrom
LeafShi1:Issue_9807_Fixing_Implement_ITypeDiscoveryService
Nov 20, 2023
Merged

Implement the ITypeDiscoveryService service#10247
Tanya-Solyanik merged 5 commits intodotnet:mainfrom
LeafShi1:Issue_9807_Fixing_Implement_ITypeDiscoveryService

Conversation

@LeafShi1
Copy link
Member

@LeafShi1 LeafShi1 commented Nov 8, 2023

Fixes #9870

Proposed changes

  • Add ITypeDiscoveryService in default service container ServiceContainer of IDesignerHost
  • Implement the ITypeDiscoveryService service

Root cause of this issue:

  • In the PopulateColumnTypesCombo function, the code attempts to obtain an ITypeDiscoveryService instance through the GetService method of IDesignerHost in order to discover all subtypes of DataGridViewColumn.
    However, because ITypeDiscoveryService is not added in the default service container ServiceContainer of IDesignerHost, GetService returns null.

private void PopulateColumnTypesCombo()
{
_columnTypesCombo.Items.Clear();
if (!_liveDataGridView.Site.TryGetService(out IDesignerHost? host))
{
return;
}
ITypeDiscoveryService? discoveryService = host.GetService<ITypeDiscoveryService>();
if (discoveryService is null)
{
return;
}
ICollection columnTypes = DesignerUtils.FilterGenericTypes(discoveryService.GetTypes(typeof(DataGridViewColumn), excludeGlobalTypes: false));

Customer Impact

  • The DataGridViewColumn can be added normally in DemoConsole project

Risk

  • Minimal

Screenshots

Before

The column type is empty
image

After

The DataGridView column can be added normally from the Add column page

AfterChange

Test methodology

  • Manually (Add test to Dome project)

Test environment(s)

  • .net 9.0.0-alpha.1.23519.1
Microsoft Reviewers: Open in CodeFlow

Copy link
Member

@ricardobossan ricardobossan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@Tanya-Solyanik Tanya-Solyanik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, I added one minor comment.

@Tanya-Solyanik Tanya-Solyanik added the waiting-author-feedback The team requires more information from the author label Nov 19, 2023
@ghost ghost removed the waiting-author-feedback The team requires more information from the author label Nov 20, 2023
Copy link
Contributor

@Tanya-Solyanik Tanya-Solyanik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@Tanya-Solyanik Tanya-Solyanik merged commit ca7cc07 into dotnet:main Nov 20, 2023
@ghost ghost added this to the 9.0 Preview1 milestone Nov 20, 2023
@LeafShi1 LeafShi1 deleted the Issue_9807_Fixing_Implement_ITypeDiscoveryService branch November 21, 2023 03:02
@github-actions github-actions bot locked and limited conversation to collaborators Dec 21, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Column types cannot be displayed in the DataGridView's Add Column window

3 participants