"Konnte nicht das Typ 'System.Object' aus der Montage 'System.Private.corelib' laden, da das übergeordnete Ausnahme im VC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 "Konnte nicht das Typ 'System.Object' aus der Montage 'System.Private.corelib' laden, da das übergeordnete Ausnahme im V

Post by Anonymous »

Ich erstelle eine Visual Studio 2022-Erweiterung mit einem VSIX-Projekt, das aus einem Fenster besteht, in dem die aktuellen Formularklassen Ihres Projekts in einem Combobox angezeigt werden, und wenn Sie eine auswählen, lädt es alle Steuerelemente in einem ListView, sodass Sie jeden Z-Ordnungsindex bearbeiten können (das übereinstimmt. Montage des aktuellen Projekts mit Reflexion und abrufen die Formklassen.

Code: Select all

.designer.cs
) Aber um die Steuerelemente jeder Formklasse tatsächlich zu laden, muss ich ihre Montage laden, aber ich kämpfe darum, weil es mir viele Abhängigkeitsfehler gibt. Framework. /> < /blockquote>
Ich habe überall nachgesehen, aber ich konnte in einem ähnlichen Fall, der meinem ähnlich ist, keine Lösung für diesen Fehler finden. Dies ist das erste Mal, dass ich eine Visual Studio -Erweiterung erstelle und solche Assemblys verwende, also wäre ich sehr dankbar, wenn mir jemand helfen könnte, danke im Voraus! FormsCombobox_SelectionChanged Ereignis, das sieht so aus:

Code: Select all

private void FormsComboBox_SelectionChanged(object sender, RoutedEventArgs e)
{
string file = "";

try
{
// Reflection approach - loads all the requested assemblies
AppDomain.CurrentDomain.AssemblyResolve += Resolver;

// Dynamically load project's assembly
Assembly assembly = Assembly.LoadFrom(Path.Combine(Path.GetDirectoryName(clientProject.FullName), "bin\\Debug\\net8.0-windows\\" + clientProject.Properties.Item("OutputFilename").Value.ToString()));

// Get the assembly name (with namespaces)
file = files.Where(s => s.Contains(FormsComboBox.SelectedItem.ToString())).First();

// Get the Type from the assembly (HERE IS WHERE THE ERROR POPS UP)
Type formType = assembly.GetType(GetAssemblyName(file), true, true);

// Create an object of the Type
object formClass = Activator.CreateInstance(formType);

// Fill the ListView with the project's Form Class Controls
controls.Clear();

if (formClass is System.Windows.Forms.Form form)
{
foreach (System.Windows.Forms.Control control in form.Controls)
{
controls.Add(control);
}
}

ControlListView.Items.Clear();

for (int i = 0; i < controls.Count; i++)
{
ControlListView.Items.Add("(" + controls[i].GetType().Name + ") " + controls[i].Name);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
}
Außerdem geschieht es aus irgendeinem Grund in der nächsten Zeile, in der es versucht, ein Objekt zu instanziieren.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post