Singleton pattern for a property in c#

.net-4.0, .net-4.5, c#, design-patterns

Solution

think you have to use a local variable out of the getter

    private static Rootpdf  _pdfConfiguration ;
    public static Rootpdf pdfConfiguration
    {
        get
        {
            try
            {
                if (_pdfConfiguration == null)
                {
                    //retrieve the configuration file.
                    //load the configuration and return it!
                }
                else
                {
                    return _pdfConfiguration;
                }
            }
            catch (Exception e)
            {
                Log.Error("An error occurred while reading the configuration file.", e);
            }

            return _pdfConfiguration;
        }
    }

and as you want a singleton, i made it a static property... hope it's what you need.

Problem

I am trying to adapt singleton policy for my CsvConfiguration Property. If the configuration is already available, just return the configuration. else, get the configuration and return the same and I am able to build this code. ``` public Rootpdf pdfConfiguration { get { Rootpdf pdfConfiguration = null; try { if (pdfConfiguration == null) { //retrieve the configuration file. //load the configuration and return it! } else { return pdfConfiguration; } } catch (Exception e) { Log.Error("An error occurred while reading the configuration file.", e); } return pdfConfiguration; } } ``` Advantages (i hope): Whenever my pdfConfiguration is wanted, if already it is available, i can return it. Need not load the configuration file eachtime and calculate the configuration. My Query: The resharper! The resharper tells that the code ``` if (pdfConfiguration == null) //The expression is always true. ``` Is it really a problem with resharper that it doesn't understand I am following this singleton pattern ? or Am I not following singleton pattern at all?

Original source