Aracılığıyla paylaş


TypeLoadException Oluşturucular

Tanım

TypeLoadException sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

Name Description
TypeLoadException()

TypeLoadException sınıfının yeni bir örneğini başlatır.

TypeLoadException(String)

Belirtilen bir hata iletisiyle sınıfının yeni bir örneğini TypeLoadException başlatır.

TypeLoadException(SerializationInfo, StreamingContext)
Geçersiz.

Serileştirilmiş verilerle sınıfının yeni bir örneğini TypeLoadException başlatır.

TypeLoadException(String, Exception)

Sınıfın TypeLoadException yeni bir örneğini belirtilen bir hata iletisiyle ve bu özel durumun nedeni olan iç özel duruma başvuruyla başlatır.

TypeLoadException()

Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs

TypeLoadException sınıfının yeni bir örneğini başlatır.

public:
 TypeLoadException();
public TypeLoadException();
Public Sub New ()

Açıklamalar

Bu oluşturucu, yeni örneğin özelliğini sistem tarafından sağlanan ve "Tür yüklenirken bir hata oluştu" gibi hatayı açıklayan bir iletiye başlatır Message . Bu ileti geçerli sistem kültürünü dikkate alır.

Aşağıdaki tabloda, örneğinin ilk özellik değerleri gösterilmektedir TypeLoadException.

Mülkiyet Değer
InnerException Null başvuru (Nothing Visual Basic'te).
Message Yerelleştirilmiş hata iletisi dizesi.

Şunlara uygulanır

TypeLoadException(String)

Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs

Belirtilen bir hata iletisiyle sınıfının yeni bir örneğini TypeLoadException başlatır.

public:
 TypeLoadException(System::String ^ message);
public TypeLoadException(string message);
public TypeLoadException(string? message);
new TypeLoadException : string -> TypeLoadException
Public Sub New (message As String)

Parametreler

message
String

Hatayı açıklayan ileti.

Örnekler

Aşağıdaki kod örneği oluşturucuyu TypeLoadException(String) gösterir. Özel iletiyle bir TypeLoadException oluşturan ve konsolda hata iletisini görüntüleyen bir yöntem içerir.

using System;

public class Example
{
   public static void Main()
   {
      try {
         // Call a method that throws an exception.
         TypeLoadExceptionDemoClass.GenerateException();
      }
      catch (TypeLoadException e) {
         Console.WriteLine("TypeLoadException:\n   {0}", e.Message);
      }
   }
}

class TypeLoadExceptionDemoClass
{
   public static bool GenerateException()
   {
      // Throw a TypeLoadException with a custom defined message.
      throw new TypeLoadException("This is a custom TypeLoadException error message.");
   }
}
// The example displays the following output:
//       TypeLoadException:
//          This is a custom TypeLoadException error message.
Public Class Example
   Public Shared Sub Main()
      Try
         ' Call a method that throws an exception.
         TypeLoadExceptionDemoClass.GenerateException()
      Catch e As TypeLoadException
         Console.WriteLine("TypeLoadException:{0}   {1}", vbCrLf, e.Message)
      End Try
   End Sub 
End Class 

Class TypeLoadExceptionDemoClass
   Public Shared Function GenerateException() As Boolean
      ' Throw a TypeLoadException with a custom message.
      Throw New TypeLoadException("This is a custom TypeLoadException error message.")
   End Function 
End Class 
' The example displays the following output:
'       TypeLoadException:
'          This is a custom TypeLoadException error message.

Açıklamalar

parametresinin message içeriği kullanıcı tarafından anlaşılabilir olmalıdır. Bu dizenin geçerli sistem kültürü için yerelleştirildiğinden emin olmak için bu oluşturucunun çağıranı gereklidir.

Aşağıdaki tabloda, örneğinin ilk özellik değerleri gösterilmektedir TypeLoadException.

Mülkiyet Değer
InnerException Null başvuru (Nothing Visual Basic'te).
Message Hata iletisi dizesi.

Şunlara uygulanır

TypeLoadException(SerializationInfo, StreamingContext)

Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs

Dikkat

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Serileştirilmiş verilerle sınıfının yeni bir örneğini TypeLoadException başlatır.

protected:
 TypeLoadException(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected TypeLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
protected TypeLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new TypeLoadException : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> TypeLoadException
new TypeLoadException : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> TypeLoadException
Protected Sub New (info As SerializationInfo, context As StreamingContext)

Parametreler

info
SerializationInfo

Serileştirilmiş nesne verilerini tutan nesne.

context
StreamingContext

Kaynak veya hedef hakkındaki bağlamsal bilgiler.

Öznitelikler

Özel durumlar

info nesnesidirnull.

Örnekler

Aşağıdaki örnek bir özel durum oluşturur ve özel durum verilerini bir dosyaya seri hale getirerek özel durumu yeniden oluşturur. Bu kod örneğinin çalışması için tam derleme adını sağlamanız gerekir. Tam derleme adını alma hakkında bilgi için bkz. Derleme Adları.


using System;
using System.Reflection;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
using System.IO;

class GetObjectDataDemo
{
   public static void Main()
   {
      // Get a reference to the assembly mscorlib.dll, which is always
      // loaded. (System.String is defined in mscorlib.)
      Assembly mscorlib = typeof(string).Assembly;

      try
      {
         Console.WriteLine ("Attempting to load a type not present in the assembly 'mscorlib'");
         // This loading of invalid type raises a TypeLoadException
         Type myType = mscorlib.GetType("System.NonExistentType", true);
      }
      catch (TypeLoadException)
      {
         // Serialize the exception to disk and reconstitute it.
         System.DateTime ErrorDatetime = DateTime.Now;
         Console.WriteLine("A TypeLoadException has been raised.");

         // Create MyTypeLoadException instance with current time.
         MyTypeLoadException myException = new MyTypeLoadException(ErrorDatetime);
         IFormatter myFormatter = new SoapFormatter();
         Stream myFileStream = new FileStream("typeload.xml", FileMode.Create, FileAccess.Write, FileShare.None);
         Console.WriteLine("Serializing the TypeLoadException with DateTime as " + ErrorDatetime);

         // Serialize the MyTypeLoadException instance to a file.
         myFormatter.Serialize(myFileStream, myException);
         myFileStream.Close();

         Console.WriteLine("Deserializing the Exception.");
         myFileStream = new FileStream("typeload.xml", FileMode.Open, FileAccess.Read, FileShare.None);

         // Deserialize and reconstitute the instance from file.
         myException = (MyTypeLoadException) myFormatter.Deserialize(myFileStream);
         myFileStream.Close();
         Console.WriteLine("Deserialized exception has ErrorDateTime = " + myException.ErrorDateTime);
      }
   }
}

// This class overrides the GetObjectData method and initializes
// its data with current time.

[Serializable]
public class MyTypeLoadException : TypeLoadException
{
   private System.DateTime _errorDateTime = DateTime.Now;
   public DateTime ErrorDateTime { get { return _errorDateTime; }}

   public MyTypeLoadException(DateTime myDateTime)
   {
      _errorDateTime = myDateTime;
   }

   protected MyTypeLoadException(SerializationInfo sInfo, StreamingContext sContext)
       : base(sInfo, sContext)
   {
      // Reconstitute the deserialized information into the instance.
      _errorDateTime = sInfo.GetDateTime("ErrorDate");
   }

   public override void GetObjectData(SerializationInfo sInfo, StreamingContext sContext)
   {
      base.GetObjectData(sInfo, sContext);
      // Add a value to the Serialization information.
      sInfo.AddValue("ErrorDate", ErrorDateTime);
   }
}
Imports System.Reflection
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Soap
Imports System.Security.Permissions
Imports System.IO

Class GetObjectDataDemo

   Public Shared Sub Main()
      ' Get a reference to the assembly mscorlib.dll, which is always
      ' loaded. (System.String is defined in mscorlib.)
      Dim tString As Type = GetType(String)
      Dim mscorlib As [Assembly] = tString.Assembly

      Try
         Console.WriteLine("Attempting to load a type not present in the assembly 'mscorlib'")
         ' This loading of invalid type raises a TypeLoadException
         Dim myType As Type = mscorlib.GetType("System.NonExistentType", True)
      Catch
         ' Serialize the exception to disk and reconstitute it.
         Dim ErrorDatetime as System.DateTime = DateTime.Now
         Console.WriteLine("A TypeLoadException has been raised.")

         ' Create MyTypeLoadException instance with current time.
         Dim myException As new MyTypeLoadException(ErrorDatetime)
         Dim myFormatter as IFormatter  = new SoapFormatter()
         Dim myFileStream as Stream 
         myFileStream = New FileStream("typeload.xml", FileMode.Create, FileAccess.Write, FileShare.None)
         Console.WriteLine("Serializing the TypeLoadException with DateTime as " _
             & ErrorDatetime.ToString())

         ' Serialize the MyTypeLoadException instance to a file.
         myFormatter.Serialize(myFileStream, myException)
         myFileStream.Close()

         Console.WriteLine("Deserializing the Exception.")
         myFileStream = New FileStream("typeload.xml", FileMode.Open, FileAccess.Read, FileShare.None)

         ' Deserialize and reconstitute the instance from file.
         myException = CType(myFormatter.Deserialize(myFileStream), MyTypeLoadException)
         myFileStream.Close()
         Console.WriteLine("Deserialized exception has ErrorDateTime = " + myException.ErrorDateTime.ToString())
      End Try
   End Sub
End Class

' This class overrides the GetObjectData method and initializes
' its data with current time. 
<Serializable()> _
Public Class MyTypeLoadException
   Inherits TypeLoadException

   Private _errorDateTime As System.DateTime = DateTime.Now
   Public ReadOnly Property ErrorDateTime As DateTime
      Get
         Return _errorDateTime
      End Get
   End Property

   Public Sub New(myDateTime As DateTime)
      _errorDateTime = myDateTime
   End Sub

   Protected Sub New(sInfo As SerializationInfo, sContext As StreamingContext)
      MyBase.New(sInfo, sContext)
      ' Reconstitute the deserialized information into the instance.
      _errorDateTime = sInfo.GetDateTime("ErrorDate")
   End Sub

   ' GetObjectData overrides must always have a demand for SerializationFormatter.
   <SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter:=true)> _
   Public Overrides Sub GetObjectData(sInfo As SerializationInfo, sContext As StreamingContext)
      MyBase.GetObjectData(sInfo, sContext)
      ' Add a value to the Serialization information.
      sInfo.AddValue("ErrorDate", ErrorDateTime)
   End Sub

End Class

Açıklamalar

Bu oluşturucu, bir akış üzerinden iletilen özel durum nesnesini yeniden oluşturmak için seri durumdan çıkarma sırasında çağrılır. Daha fazla bilgi için bkz. XML ve SOAP Serileştirme.

Ayrıca bkz.

Şunlara uygulanır

TypeLoadException(String, Exception)

Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs
Kaynak:
TypeLoadException.cs

Sınıfın TypeLoadException yeni bir örneğini belirtilen bir hata iletisiyle ve bu özel durumun nedeni olan iç özel duruma başvuruyla başlatır.

public:
 TypeLoadException(System::String ^ message, Exception ^ inner);
public TypeLoadException(string message, Exception inner);
public TypeLoadException(string? message, Exception? inner);
new TypeLoadException : string * Exception -> TypeLoadException
Public Sub New (message As String, inner As Exception)

Parametreler

message
String

Özel durumun nedenini açıklayan hata iletisi.

inner
Exception

Geçerli özel durumun nedeni olan özel durum. inner parametresi değilsenull, geçerli özel durum, iç özel durumu işleyen bir catch blokta oluşturulur.

Örnekler

Aşağıdaki kod örneği oluşturucuyu TypeLoadException(String, Exception) gösterir. bir oluşturan bir TypeLoadExceptionyöntem içerir, bu özel durumu yakalar ve iç özel durum olarak özgün TypeLoadException de dahil olmak üzere özel bir ileti ile yeni TypeLoadException bir oluşturur.

using System;
using System.Runtime.InteropServices;

public class TypeLoadException_Constructor3
{
   public static void Main()
   {
      Console.WriteLine("Calling a method in a non-existent DLL which triggers a TypeLoadException.");
      try
      {
         TypeLoadExceptionDemoClass3.GenerateException();
      }
      catch (TypeLoadException e)
      {
         Console.WriteLine ("TypeLoadException: \n\tError Message = " + e.Message);
         Console.WriteLine ("TypeLoadException: \n\tInnerException Message = " + e.InnerException.Message );
      }
      catch (Exception e)
      {
         Console.WriteLine ("Exception: \n\tError Message = " + e.Message);
      }
   }
}

class TypeLoadExceptionDemoClass3
{
   // A call to this method will raise a TypeLoadException.
   [DllImport("NonExistentDLL.DLL", EntryPoint="MethodNotExists")]
   public static extern void NonExistentMethod();

   public static void GenerateException()
   {
      try
      {
         NonExistentMethod();
      }
      catch (TypeLoadException e)
      {
         // Rethrow exception with the exception as inner exception
         throw new TypeLoadException("This exception was raised due to a call to an invalid method.", e);
      }
   }
}
Imports System.Runtime.InteropServices

Public Class TypeLoadException_Constructor3
   Public Shared Sub Main()
      Console.WriteLine("Calling a method in a non-existent DLL which triggers a TypeLoadException.")
      Try
         TypeLoadExceptionDemoClass.GenerateException()
      Catch e As TypeLoadException
         Console.WriteLine(("TypeLoadException: " + ControlChars.Cr + ControlChars.Tab + "Error Message = " + e.Message))
         Console.WriteLine(("TypeLoadException: " + ControlChars.Cr + ControlChars.Tab + "InnerException Message = " + e.InnerException.Message))
      Catch e As Exception
         Console.WriteLine(("Exception: " + ControlChars.Cr + ControlChars.Tab + "Error Message = " + e.Message))
      End Try
   End Sub
End Class

Class TypeLoadExceptionDemoClass
   ' A call to this method will raise a TypeLoadException.
   Public Declare Sub NonExistentMethod Lib "NonExistentDLL.DLL" Alias "MethodNotExists" ()

   Public Shared Sub GenerateException()
      Try
         NonExistentMethod()
      Catch e As TypeLoadException
         ' Rethrow exception with the exception as inner exception
         Throw New TypeLoadException("This exception was raised due to a call to an invalid method.", e)
      End Try
   End Sub
End Class

Açıklamalar

Önceki bir özel durumun doğrudan sonucu olarak oluşan bir özel durum, özelliğindeki InnerException önceki özel duruma başvuru içerebilir. InnerException özelliği oluşturucuya geçirilen aynı değeri döndürür veya null özelliği oluşturucuya iç özel durum değeri sağlamaz.InnerException

Aşağıdaki tabloda, örneğinin ilk özellik değerleri gösterilmektedir TypeLoadException.

Mülkiyet Değer
InnerException İç özel durum başvurusu.
Message Hata iletisi dizesi.

Ayrıca bkz.

Şunlara uygulanır