Я отлаживаю решение в VS 2022 с двумя проектами. Запускаемый проект — это приложение ASP.Net Core, которое ссылается на проект dll в одном и том же решении, при этом оба проекта ориентированы на .NET 8. Только проект запуска ссылается на Devart.Data.MySql.dll, а не на проект dll, но проект dll загружает сборку Devart.Data.MySql.dll с использованием отражения, а затем создает из нее объект DbProviderFactory.
Код: Выделить всё
var providerClientAssembly = Assembly.LoadFrom(assemblyFilePath);
var clientFactoryType =
providerClientAssembly.GetType(clientFactoryTypeName);
if (clientFactoryType != null)
{
DbProviderFactories.RegisterFactory(providerInvariantName, clientFactoryType);
}
DbProviderFactory dpf = DbProviderFactories.GetFactory(providerInvariantName);
DbConnection conn = dpf.CreateConnection();
conn.ConnectionString = config.GetConnectionString("Connection1");
DbCommand dbcmd = dpf.CreateCommand();
dbcmd.Connection = conn;
При их отладке в VS 2022 я не вижу всех членов переменной newDbCommand (указывающей на объект dbcmd в приведенном выше коде), представляющей Devart.Data.MySql.MySqlCommand в окне Quickwatch или Watch, находясь в проекте dll, как показано ниже; Я вижу только три точки под именем переменной. Даже если я нажму на три точки, ничего не произойдет. Решение запускается в режиме отладки в VS 2022, т. е. «Отладка» > «Начать отладку». Свойства сборки проекта dll показывают, что PDB-файл создается, как показано на втором снимке экрана.
Странно, что при просмотре любых переменных, не связанных с объектом, созданным отражением, все элементы отображаются в Quickwatch или окне просмотра, находясь в проекте dll.
Переменные элементы отображаются по одному щелчком правой кнопкой мыши по трем точкам в Quickwatch
https://1drv.ms/v/c/a92ae4ee378a11eb/EU ... naGL9oPJAQ
Подробнее здесь:
https://stackoverflow.com/questions/798 ... ut-only-th