- Target Invocation Exception Класс
- Определение
- Комментарии
- Конструкторы
- Свойства
- Методы
- События
- System.Reflection.TargetInvocationException: “Адресат вызова создал исключение.”
- 2 ответа 2
- System.Reflection.TargetInvocationException System.TypeLoadException: Could not load type of field #23028
- Comments
- Nullstr1ng commented Jun 17, 2020
- Describe the bug
- To Reproduce
- Exceptions (if any)
- Further technical details
Target Invocation Exception Класс
Определение
Исключение выдается методами, вызываемыми средствами отражения. The exception that is thrown by methods invoked through reflection. Этот класс не наследуется. This class cannot be inherited.
Комментарии
Для получения дополнительной информации см. Invoke. For more information, see Invoke.
TargetInvocationException использует COR_E_TARGETINVOCATION HRESULT, имеющий значение 0x80131604. TargetInvocationException uses the HRESULT COR_E_TARGETINVOCATION which has the value 0x80131604.
При создании TargetInvocationException передается ссылка на исключение, созданное методом, вызванным через отражение. When created, the TargetInvocationException is passed a reference to the exception thrown by the method invoked through reflection. InnerExceptionСвойство содержит базовое исключение. The InnerException property holds the underlying exception.
Конструкторы
Инициализирует новый экземпляр класса TargetInvocationException со ссылкой на внутреннее исключение, которое является причиной данного исключения. Initializes a new instance of the TargetInvocationException class with a reference to the inner exception that is the cause of this exception.
Инициализирует новый экземпляр класса TargetInvocationException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение. Initializes a new instance of the TargetInvocationException class with a specified error message and a reference to the inner exception that is the cause of this exception.
Свойства
Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении. Gets a collection of key/value pairs that provide additional user-defined information about the exception.
(Унаследовано от Exception)
Получает или задает ссылку на файл справки, связанный с этим исключением. Gets or sets a link to the help file associated with this exception.
(Унаследовано от Exception)
Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению. Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.
(Унаследовано от Exception)
Возвращает экземпляр класса Exception, который вызвал текущее исключение. Gets the Exception instance that caused the current exception.
(Унаследовано от Exception)
Возвращает сообщение, описывающее текущее исключение. Gets a message that describes the current exception.
(Унаследовано от Exception)
Возвращает или задает имя приложения или объекта, вызывавшего ошибку. Gets or sets the name of the application or the object that causes the error.
(Унаследовано от Exception)
Получает строковое представление непосредственных кадров в стеке вызова. Gets a string representation of the immediate frames on the call stack.
(Унаследовано от Exception)
Возвращает метод, создавший текущее исключение. Gets the method that throws the current exception.
(Унаследовано от Exception)
Методы
Определяет, равен ли указанный объект текущему объекту. Determines whether the specified object is equal to the current object.
(Унаследовано от Object)
При переопределении в производном классе возвращает исключение Exception, которое является первопричиной одного или нескольких последующих исключений. When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.
(Унаследовано от Exception)
Служит хэш-функцией по умолчанию. Serves as the default hash function.
(Унаследовано от Object)
При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении. When overridden in a derived class, sets the SerializationInfo with information about the exception.
(Унаследовано от Exception)
Возвращает тип среды выполнения текущего экземпляра. Gets the runtime type of the current instance.
(Унаследовано от Exception)
Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.
(Унаследовано от Object)
Создает и возвращает строковое представление текущего исключения. Creates and returns a string representation of the current exception.
(Унаследовано от Exception)
События
Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении. Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.
System.Reflection.TargetInvocationException: “Адресат вызова создал исключение.”
На событии TextChanged возникает ошибка
System.Reflection.TargetInvocationException: “Адресат вызова создал исключение.” Внутреннее исключение NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
2 ответа 2
Перепишите код вот так!
При первом визове этого события у вас еще не создана екземпляр MainWindow ,следовательно и еще не работала функция InitializeComponent() и вы пытетесь получить еще не созданную TextBox2 .
Проблема в том, что, как правильно замечает @Vardan Vardanyan, интерпретация XAML, а значит, назначение обработчиков событий и привязка имён происходит во время выполнения InitializeComponent . При этом порядок этих операций не определён. В вашем случае порядок был следующим:
- установился обработчик TextChanged
- установилось значение Text в «TextBox» , при этом вызвался обработчик
- далее переменной TextBox2 должно было быть присвоено значение, соответствующее текстбоксу, но это не успело произойти, т. к. на предыдущем шаге случилось исключение.
(Заметьте, что стандарта на порядок выполнения этих операций нет, любой порядок возможен.)
Вы можете игнорировать событие во время InitializeComponent , проверяя TextBox2 на равенство null . Но более чистым решением мне кажется подписка на событие после отработки InitializeComponent . Для этого нужно убрать TextChanged=»TextBox1_TextChanged» из XAML и добавить в конструктор:
System.Reflection.TargetInvocationException System.TypeLoadException: Could not load type of field #23028
Comments
Nullstr1ng commented Jun 17, 2020
Describe the bug
We are a company developing a system for a client which requires a chat functionality for Support. This client application is a Xamarin application and our server supports SignalR — WHICH IS TOTALLY WORKING flawlessly in any web app clients that connects to it.
Now for our Xamarin application, we’re done in the first feature and we’re at the 2nd iteration which requires Chat. I first installed that latest stable version of microsoft.aspnetcore.signalr.client version 3.1.5. Running the app and the splash screen loaded, the app terminates it self with throwing us
06-17 03:16:35.213 I/MonoDroid(18297): System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.TypeLoadException: Could not load type of field ‘Microsoft.AspNetCore.Http.Features.Authentication.HttpAuthenticationFeature: k__BackingField’ (1) due to: Could not resolve type with token 01000080 from typeref (expected class ‘Microsoft.AspNetCore.Http.Features.Authentication.IAuthenticationHandler’ in assembly ‘Microsoft.AspNetCore.Http.Features, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60’) assembly:Microsoft.AspNetCore.Http.Features, Version=2.2.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60 type:Microsoft.AspNetCore.Http.Features.Authentication.IAuthenticationHandler member:(null)**
We tried installing Microsoft.AspNetCore.Http.Features 2.2.0.0 with no luck. We downgraded the version of the pacakge microsoft.aspnetcore.signalr.client from 3.1.5 to 1.1.0 and we are now able to run the application.
Ok so that is working. 1.1.0 is working but we need the ConnectionId which is not available in 1.1.0
Other web app clients are using 5.0 and not issues at all. Our Xamarin app doesn’t work at version 5.0 down to 3x. It’s just work with 1.1.0
To Reproduce
I really do not know how to reproduce but it’s simply installing microsoft.aspnetcore.signalr.client latest stable version from Xamarin.Forms 4.6.0.800 application
Exceptions (if any)
06-17 03:16:35.169 I/MonoDroid(18297): UNHANDLED EXCEPTION: Thread started:
06-17 03:16:35.213 I/MonoDroid(18297): at Xamarin.Forms.VisualTypeConverter.InitMappings () [0x0001a] in D:\a\1\s\Xamarin.Forms.Core\Visuals\VisualTypeConverter.cs:21
06-17 03:16:35.213 I/MonoDroid(18297): at Xamarin.Forms.VisualTypeConverter.ConvertFromInvariantString (System.String value) [0x00007] in D:\a\1\s\Xamarin.Forms.Core\Visuals\VisualTypeConverter.cs:118
06-17 03:16:35.213 I/MonoDroid(18297): at MASKED.Business.Mobile.MASKED.UI.Pages.SupportPages.Support.InitializeComponent () [0x00056] in F:\EAP\MASKED\MASKED.Business.Mobile\MASKED.Business.Mobile.MASKED\obj\Debug
etstandard2.1\Pages\SupportPages\Support.xaml.g.cs:38
06-17 03:16:35.213 I/MonoDroid(18297): at MASKED.Business.Mobile.MASKED.UI.Pages.SupportPages.Support..ctor () [0x00008] in F:\EAP\MASKED\MASKED.Business.Mobile\MASKED.Business.Mobile.MASKED\Pages\SupportPages\Support.xaml.cs:13
06-17 03:16:35.213 I/MonoDroid(18297): at (wrapper managed-to-native) System.Reflection.RuntimeConstructorInfo.InternalInvoke(System.Reflection.RuntimeConstructorInfo,object,object[],System.Exception&)
06-17 03:16:35.213 I/MonoDroid(18297): at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x00005] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:936
06-17 03:16:35.213 I/MonoDroid(18297): — End of inner exception stack trace —
06-17 03:16:35.213 I/MonoDroid(18297): at System.Reflection.RuntimeConstructorInfo.InternalInvoke (System.Object obj, System.Object[] parameters, System.Boolean wrapExceptions) [0x00018] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:944
06-17 03:16:35.213 I/MonoDroid(18297): at System.RuntimeType.CreateInstanceMono (System.Boolean nonPublic, System.Boolean wrapExceptions) [0x00095] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/corlib/ReferenceSources/RuntimeType.cs:185
06-17 03:16:35.213 I/MonoDroid(18297): at System.RuntimeType.CreateInstanceSlow (System.Boolean publicOnly, System.Boolean wrapExceptions, System.Boolean skipCheckThis, System.Boolean fillCache) [0x00009] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/corlib/ReferenceSources/RuntimeType.cs:155
06-17 03:16:35.213 I/MonoDroid(18297): at System.RuntimeType.CreateInstanceDefaultCtor (System.Boolean publicOnly, System.Boolean skipCheckThis, System.Boolean fillCache, System.Boolean wrapExceptions, System.Threading.StackCrawlMark& stackMark) [0x00027] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/referencesource/mscorlib/system/rttype.cs:5770
06-17 03:16:35.213 I/MonoDroid(18297): at System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic, System.Boolean wrapExceptions) [0x00039] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/referencesource/mscorlib/system/activator.cs:206
06-17 03:16:35.213 I/MonoDroid(18297): at System.Activator.CreateInstance (System.Type type, System.Boolean nonPublic) [0x00000] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/referencesource/mscorlib/system/activator.cs:190
06-17 03:16:35.213 I/MonoDroid(18297): at System.Activator.CreateInstance (System.Type type) [0x00000] in /Users/builder/jenkins/workspace/archive-mono/2020-02/android/release/mcs/class/referencesource/mscorlib/system/activator.cs:134
06-17 03:16:35.213 I/MonoDroid(18297): at Xamarin.Forms.Routing+TypeRouteFactory.GetOrCreate () [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Routing.cs:193
06-17 03:16:35.213 I/MonoDroid(18297): at Xamarin.Forms.Routing.GetOrCreateContent (System.String route) [0x00011] in D:\a\1\s\Xamarin.Forms.Core\Routing.cs:61
06-17 03:16:35.213 I/MonoDroid(18297): at Xamarin.Forms.ShellSection.GoToAsync (Xamarin.Forms.NavigationRequest request, System.Collections.Generic.IDictionary 2[TKey,TValue] queryData, System.Nullable 1[T] animate) [0x0046f] in D:\a\1\s\Xamarin.Forms.Core\Shell\ShellSection.cs:424
06-17 03:16:35.213 I/MonoDroid(18297): at Xamarin.Forms.Shell.GoToAsync (Xamarin.Forms.ShellNavigationState state, System.Nullable 1[T] animate, System.Boolean enableRelativeShellRoutes) [0x005fd] in D:\a\1\s\Xamarin.Forms.Core\Shell\Shell.cs:571 06-17 03:16:35.213 I/MonoDroid(18297): at MASKED.Business.Mobile.MASKED.UI.Services.NavService.NavigateTo (MASKED.Business.Mobile.CoreLibrary.Enums.MASKED.Enum_Pages page, System.String query) [0x00046] in F:\EAP\MASKED\MASKED.Business.Mobile\MASKED.Business.Mobile.MASKED\Services\NavService.cs:22 06-17 03:16:35.213 I/MonoDroid(18297): at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.
b__0 () [0x00000] in :0 06-17 03:16:35.214 I/MonoDroid(18297): at Java.Lang.Thread+RunnableImplementor.Run () [0x00008] in :0 06-17 03:16:35.214 I/MonoDroid(18297): at Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] in :0 06-17 03:16:35.214 I/MonoDroid(18297): at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.27(intptr,intptr) 06-17 03:16:35.243 D/Mono (18297): DllImport searching in: ‘__Internal’ (‘(null)’). 06-17 03:16:35.243 D/Mono (18297): Searching for ‘java_interop_jnienv_throw’. 06-17 03:16:35.243 D/Mono (18297): Probing ‘java_interop_jnienv_throw’. 06-17 03:16:35.243 D/Mono (18297): Found as ‘java_interop_jnienv_throw’.
Further technical details
- ASP.NET Core version — 3.1
- IDE: Visual Studio 2019 Pro
The text was updated successfully, but these errors were encountered:
Adblockdetector