Frage

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TypeIntailization_Exception
{

    class TypeInit
    {
        // Static constructor
        static TypeInit()
        {

        }
        static readonly TypeInit instance = new TypeInit();
        public  static TypeInit Instance
        {
            get { return instance; }
        }
        TypeInit() { }
    }
    class TestTypeInit
    {
        static public void Main()
        {

            TypeInit t = TypeInit.Instance;

        }
    }

}

, wenn diese läuft i bekommen Typ intialization Ausnahme, wie kann ich diese vermeiden ...

War es hilfreich?

Lösung

Die TypeInitializationException wird ausgelöst, wenn eine Ausnahme von den Klasseninitialisierer geworfen wird (in Ihrem Beispiel static TypeInit().

Sie können die wirkliche Ausnahme sehen durch die InnerException Eigenschaft des TypeInitializationException Prüfung:

static public void Main()
{
    try
    {
        TypeInit t = TypeInit.Instance;
    }
    catch (TypeInitializationException tiex)
    {
        var ex = tiex.InnerException;

        Console.WriteLine("Exception from type init: '{0}'", ex.Message);
    }
}

Andere Tipps

Sie sind eine Ausnahme im Konstruktor Ihrer Singletonklasse werfen, so der Moment, den Sie versuchen, es zu konstruieren, wirft es eine Ausnahme. Dies wird in der TypeInitializationException gewickelt, wie Sie sehen.

. Lösung: nicht eine Ausnahme auslösen, wenn es warrented ist

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top