This repository was archived by the owner on Jun 21, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +13
-6
lines changed
Expand file tree Collapse file tree 2 files changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -12,11 +12,11 @@ public interface IMenuProvider
1212 /// <summary>
1313 /// Registered via AddTopLevelMenuItem
1414 /// </summary>
15- IEnumerable < IMenuHandler > Menus { get ; set ; }
15+ IReadOnlyCollection < IMenuHandler > Menus { get ; }
1616
1717 /// <summary>
1818 /// Registered via AddDynamicMenuItem
1919 /// </summary>
20- IEnumerable < IDynamicMenuHandler > DynamicMenus { get ; set ; }
20+ IReadOnlyCollection < IDynamicMenuHandler > DynamicMenus { get ; }
2121 }
2222}
Original file line number Diff line number Diff line change 11using System . Collections . Generic ;
2+ using System . Collections . ObjectModel ;
23using System . ComponentModel . Composition ;
4+ using System . Linq ;
35
46namespace GitHub . VisualStudio . Menus
57{
68 [ Export ( typeof ( IMenuProvider ) ) ]
79 [ PartCreationPolicy ( CreationPolicy . Shared ) ]
810 public class MenuProvider : IMenuProvider
911 {
10- [ ImportMany ]
11- public IEnumerable < IMenuHandler > Menus { get ; set ; }
12+ public IReadOnlyCollection < IMenuHandler > Menus { get ; private set ; }
1213
13- [ ImportMany ]
14- public IEnumerable < IDynamicMenuHandler > DynamicMenus { get ; set ; }
14+ public IReadOnlyCollection < IDynamicMenuHandler > DynamicMenus { get ; private set ; }
15+
16+ [ ImportingConstructor ]
17+ public MenuProvider ( [ ImportMany ] IEnumerable < IMenuHandler > menus , [ ImportMany ] IEnumerable < IDynamicMenuHandler > dynamicMenus )
18+ {
19+ Menus = new ReadOnlyCollection < IMenuHandler > ( menus . ToList ( ) ) ;
20+ DynamicMenus = new ReadOnlyCollection < IDynamicMenuHandler > ( dynamicMenus . ToList ( ) ) ;
21+ }
1522 }
1623}
You can’t perform that action at this time.
0 commit comments