Domanda

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;

        }
    }

}

quando si esegue questo ottengo Tipo intialization eccezione come posso evitare questo ...

È stato utile?

Soluzione

Il TypeInitializationException viene generata quando viene generata un'eccezione dall'inizializzatore di classe (nel tuo esempio static TypeInit().

Si può vedere la vera eccezione esaminando la proprietà InnerException del TypeInitializationException:

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);
    }
}

Altri suggerimenti

Si stanno gettando un'eccezione nel costruttore della classe Singleton, in modo che il momento in cui si sta cercando di costruirlo viene generata un'eccezione. Questo viene avvolto nel TypeInitializationException come vedete.

. Soluzione: non un'eccezione meno che non sia warrented

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top