В C# .NET. Как я могу создать новый класс исключений и выбросить его в Runtime. Мне нужно создать имя класса исключения во время выполнения на основе строки, которую я получаю в качестве ввода. Кажется, я должен использовать Reflection.emit, но я не знаю, как это сделать.Как создать новый класс исключения и выбросить его
4
A
ответ
3
Хотя я не понимаю, цель создания типа исключения с использованием отражение, создание типа исключения не отличается от создания любого другого типа:
// Build an assembly ...
var appDomain = Thread.GetDomain();
var assemblyName = new AssemblyName("MyAssembly");
var assemblyBuilder = appDomain.DefineDynamicAssembly(
assemblyName,
AssemblyBuilderAccess.Run
);
// ... with a module ...
var moduleBuilder = assemblyBuilder.DefineDynamicModule("MyModule");
// ... containing a class.
var typeBuilder = moduleBuilder.DefineType(
"MyException",
TypeAttributes.Class, // A class ...
typeof(Exception) // ... deriving from Exception
);
var exceptionType = typeBuilder.CreateType();
// Create and throw exception.
var exception = (Exception) Activator.CreateInstance(exceptionType);
throw exception;
0
Я думаю, вы можете посмотреть в этой статье, за исключением: http://blog.gurock.com/articles/creating-custom-exceptions-in-dotnet/
И к этой теме, чтобы решить проблему определения во время выполнения: Creating a class for an interface at runtime, in C#
+0
Ответы должны содержать не только ссылки, они должны содержать необходимую информацию самостоятельно. – svick
Смежные вопросы
- 1. Когда я должен создать новый класс исключения
- 2. создать новый тип исключения
- 3. выбросить новый EAbort
- 4. Как выбросить 404 исключения в Zend Framework
- 5. Как создать новый сохранить и загрузить его?
- 6. Выбросить исключения через несколько процессов
- 7. Невозможно создать новый класс
- 8. Новый класс/файл для каждого исключения?
- 9. Как выбросить ошибки или исключения из Action в Play?
- 10. как различались и новый класс и новый класс в PHP
- 11. Выбросить исключения из функции действия кнопки
- 12. Выбросить исключения из вспомогательных методов в WCF?
- 13. Создать новый указатель на класс
- 14. PHP OOP: создать новый класс?
- 15. Как создать новый класс Scala Map?
- 16. Как создать новый тестовый класс в shortkeys?
- 17. Как создать новый класс в CodeFixProvider
- 18. IntelliJ как мне создать новый класс?
- 19. Выбросить исключения без использования try в Java
- 20. Android - Как запустить новый класс и его активность?
- 21. Как создать новый класс из UIVisualEffectView и UIActivityIndicatorView
- 22. Создайте новый класс и загрузите его в виде
- 23. HibernateTemplate класс исключение исключения
- 24. Как создать новый класс для развертывания opencv и методов объекта
- 25. Компилировать новый класс и использовать
- 26. Как создать новый класс и сохранить его на диск с ложкой
- 27. Как создать новый класс JavaScript на основе существующего класса и расширить его
- 28. Intersystems caché - программно создать новый класс
- 29. Как создать новый файл и выбрать его имя автоматически?
- 30. Как создать новый тег img и заполнить его картиной JavaScript?
Вам нужно будет предоставить нам больше контекста. Если честно, это звучит неплохо, какую проблему вы пытаетесь решить? –
Если вы генерируете тип исключения во время выполнения, как вы ожидаете, что кто-то сможет его поймать? Если они не поймают один из базовых типов исключений, в этом случае, какой будет ваш класс исключения? – Lukazoid
@ Lukazoid Я согласен, что кажется немного «непригодным для использования», но вопрос, кажется, интересует меня, чтобы решить. – cubitouch