Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the ITypeDiscoveryService service #10247

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
Contributor

@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
Member

@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
Member

@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
9 checks passed
@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