У меня есть код, который пытается создать объект сначала с помощью одного конструктора, а затем, если это не удается, с конструктором по умолчанию:
MyClass Construct(MyField f1, MyField f2)
{
try
{
return (MyClass)Activator.CreateInstance(typeof(MyClass), f1, f2);
}
catch
{
var o = (MyClass)Activator.CreateInstance(typeof(MyClass));
o.f1= f1;
o.f2=f2;
return o;
}
}
Я хочу, чтобы отладчик не останавливался при обнаружении исключения. Я пробовал [DebuggerStepThrough]
, [DebuggerHidden]
и [DebuggerNonUserCode]
безуспешно.
Я также пробовал запустить: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VsRegEdit.exe" set "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" HKLM Debugger\Engine AlwaysEnableExceptionCallbacksOutsideMyCode dword 1
как рекомендовано здесь, но не повезло.
Есть ли способ сделать это в VS2017? В качестве альтернативы, есть ли способ использовать Activator.CreateInstance
, который вернет null
вместо генерации исключения?
(с использованием Visual Studio 2017 15.8.0 превью 4.0)
Activator.CreateInstance
для типа, который знаете во время компиляции? Почему бы просто не использоватьnew MyClass(f1, f2)
? - person MickyD   schedule 23.08.2018