Override System / AppDomain События?

голоса
0

поэтому я работаю над чем-то вроде РОС я хочу, чтобы иметь возможность получить строки кода из списка исключений в коде, когда я это скомпилирован так я сейчас пытаюсь посмотреть, что я могу сделать с

AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

и я планировал сделать это с

[CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null

я уже подтвердил в стеке вызовов он называет делегированы функциями непосредственно, но очевидно, что подпись не совпадает, это проблема. я не могу изменить подпись, не изменяя тип UnhandledException, но я не могу наследовать AppDomain класса (запечатанные), и я не могу думать о каких-либо других идеях, чтобы обойти эту проблему, я имею

using System;
using System.Collections.Generic;
using System.Diagnostics.Tracing;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
using System.Windows.Forms;

namespace TestApp
{
    static class Program
    {

    public delegate void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null);
    [STAThread]
    static void Main()
    {

        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }

    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        UnhandledExceptionEventHandler c = Function_I_Want_To_Delegate;
    }

    static void Function_I_Want_To_Delegate(object sender, UnhandledExceptionEventArgs e, [CallerLineNumber] int lineNumber = 0, [CallerMemberName] string caller = null)
    {

    }
}

(Дополнительная информация :) Фотография всего кода

Задан 20/10/2018 в 05:28
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more