Есть метод, который создает инстанс формы через рефлексию:
public static DataRecordForm GetForm(IDataRecordContext ctx, string postfix = "")
{
var formName = "Gui.Configurator.Forms." + ctx.DataDomainName + postfix + "Form";
var formType = Type.GetType(formName);
if (formType == null)
{
throw new ArgumentException($"Not found form type with name {formName}. Did you forgot path?");
}
if (Activator.CreateInstance(formType, ctx, ApiProvider) is not DataRecordForm form)
{
throw new Exception($"Form {formName} is not an instance of DataRecordForm");
}
return form;
}
Этот метод вызывается в других методах приложения, которым нужен инстанс формы, например:
public static void ShowDataRecordForm(IDataRecordContext ctx, string postfix = "")
{
using var form = GetForm(ctx, postfix);
form.Owner = MainFormStatic;
form.StartPosition = FormStartPosition.CenterScreen;
form.Show();
}
Произойдет ли освобождение ресурсов после закрытия такой формы?