Je fais une application Windows où l'utilisateur sélectionne un type de zone de liste déroulante. Basé sur la sélection, en utilisant la réflexion je veux créer une instance du type respectif et invoquer une de ses méthodes. Les types que je veux créer sont également définis dans la même application Windows que les classes sperate. Mais je reçois l'erreur comme mentionné dans le titre. Voici mon code.Impossible de charger le type xxx xxx de l'assemblage
Code Form1:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
cbLogs.SelectedIndex = 0;
}
private void btnProcess_Click(object sender, EventArgs e)
{
lblMessage.Text = "";
lblResult.Text = "";
if (cbLogs.SelectedIndex <= 0)
{
lblMessage.Text = "Please select Log to be processed";
cbLogs.Focus();
return;
}
Assembly currAss = System.Reflection.Assembly.GetExecutingAssembly();
//I get above error on below line.
object obj = Activator.CreateInstance(currAss.FullName,"SustainabilityXpress ");
Type type = obj.GetType();
object result = type.InvokeMember("process",
BindingFlags.Default | BindingFlags.InvokeMethod,
null, obj, null);
lblResult.Text = result.ToString();
}
}
ILogBase Interface:
interface ILogBase
{
string process();
}
classe SustainabilityXpress qui implémente ILogBase:
public class SustainabilityXpress: ILogBase
{
string LogName = "SUSTAINABILITYXPRESS";
public string process()
{
return "Sustainabilityxpress";
}
}
Humberto Thanx, en ajoutant l'espace de noms résolu mon problème. – sunitw