Yordan Yanakiev
Yordan Yanakiev

Reputation: 2604

Singleton keep initializing?

I am trying to share data between classes, and I am normally so far were using in WinForms this approach, which seems like doesn't works in Blazor.

public class MainConfiguration
{
        private static MainConfiguration _instance = null;
        public static MainConfiguration instance
        { 
            get
            {
                if( _instance == null )
                    _instance = new MainConfiguration();

                return _instance;
            }            

        }

        public MainConfiguration()
        {
        }
}

Upvotes: 0

Views: 636

Answers (1)

Postlagerkarte
Postlagerkarte

Reputation: 7117

Register you MainConfiguration as a singleton service in the Startup.cs:

services.AddSingleton<MainConfiguration>();

Then inject it everywhere you need to have access to:

e.g. in a .razor file you can either do:

@inject MainConfiguration MainConfiguration

or in the @code section:

[Inject]
public MainConfiguration MainConfiguration {get; set;}

You can also inject your MainConfiguration into a c# class via the constructor:

public class MyClass
{
    public MyClass(MainConfiguration mainConfiguration) { ... }
}

Upvotes: 3

Related Questions