Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
712 views
in Technique[技术] by (71.8m points)

c# - A local or parameter cannot be declared in this scope because that name is used in an enclosing local scope

I am currently watching a guide on how to get Navigation between views in MVVM WPF. But in my Project i get an error saying: CS0136 A local or parameter named 'services' cannot be declared in this scope because that name is used in an enclosing local scope

I checked the Code on Github and in the tutorial it is used the same way now i wonder if i made a mistake here or there is something i have overlooked.

Here the link to the Git from the Tutorial: https://github.com/SingletonSean/SimpleTrader/blob/part-16/SimpleTrader/SimpleTrader.WPF/App.xaml.cs

the Error happens in this line

services.AddSingleton<IDesiraViewModelFactory<LoginViewModel>>((services) =>
               new LoginViewModelFactory(
               new ViewModelFactoryRenavigator<CharOverviewViewModel>(services.GetRequiredService<INavigator>(),services.GetRequiredService<IDesiraViewModelFactory<CharOverviewViewModel>>())));

The Code is this

private IServiceProvider CreateServiceProvider()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddScoped<INavigator, Navigator>();
            services.AddScoped<MainViewModel>();
            services.AddSingleton<IDesiraViewModelAbstractFactory, DesiraViewModelAbstractFactory>();
            services.AddSingleton<IDesiraViewModelFactory<LoginViewModel>, LoginViewModelFactory>();
            services.AddSingleton<IDesiraViewModelFactory<CharOverviewViewModel>, CharOverviewModelFactory>();

            services.AddSingleton<IDesiraViewModelFactory<LoginViewModel>>((services) =>
               new LoginViewModelFactory(
               new ViewModelFactoryRenavigator<CharOverviewViewModel>(services.GetRequiredService<INavigator>(),services.GetRequiredService<IDesiraViewModelFactory<CharOverviewViewModel>>())));

            services.AddScoped<MainWindow>(s => new MainWindow(s.GetRequiredService<MainViewModel>()));


            return services.BuildServiceProvider();
        }
question from:https://stackoverflow.com/questions/65936595/a-local-or-parameter-cannot-be-declared-in-this-scope-because-that-name-is-used

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...