Je suis en train de comprendre plus sur la classe Assemblée et de ses méthodes et il est un exemple de la manière suivante sur ce URL comme suit:GetType (« ClassName) .GetMethod (» NomMéthode ") renvoie une erreur
Cependant, la méthode : assem.GetType("Example").GetMethod("SampleMethod")
génère une erreur d'exception et se plaint de ne pas avoir une référence d'objet
Semble la méthode avant que cette méthode renvoie la valeur null ainsi Toute idée
using System;
using System.Reflection;
using System.Security.Permissions;
[assembly:AssemblyVersionAttribute("1.0.2000.0")]
public class Example
{
private int factor;
public Example(int f)
{
factor = f;
}
public int SampleMethod(int x)
{
Console.WriteLine("\nExample.SampleMethod({0}) executes.", x);
return x * factor;
}
public static void Main()
{
Assembly assem = Assembly.GetExecutingAssembly();
Console.WriteLine("Assembly Full Name:");
Console.WriteLine(assem.FullName);
// The AssemblyName type can be used to parse the full name.
AssemblyName assemName = assem.GetName();
Console.WriteLine("\nName: {0}", assemName.Name);
Console.WriteLine("Version: {0}.{1}",
assemName.Version.Major, assemName.Version.Minor);
Console.WriteLine("\nAssembly CodeBase:");
Console.WriteLine(assem.CodeBase);
// Create an object from the assembly, passing in the correct number
// and type of arguments for the constructor.
Object o = assem.CreateInstance("Example", false,
BindingFlags.ExactBinding,
null, new Object[] { 2 }, null, null);
// Make a late-bound call to an instance method of the object.
MethodInfo m = assem.GetType("Example").GetMethod("SampleMethod");
Object ret = m.Invoke(o, new Object[] { 42 });
Console.WriteLine("SampleMethod returned {0}.", ret);
Console.WriteLine("\nAssembly entry point:");
Console.WriteLine(assem.EntryPoint);
}
}
/* cet exemple de code produit similaire à..? les éléments suivants:
Assemblée Nom complet: source Version = 1.0.2000.0, Culture = neutral, PublicKeyToken = null
Nom: Source Version: 1.0
Assemblée CodeBase: file: // /C:/sdtree/AssemblyClass/cs/source.exe
Example.SampleMethod (42) est exécutée. SampleMethod retourné 84.
point d'entrée de l'Assemblée: Void principal() */
je vais deviner 'GetType (..)' retourne null. S'il vous plaît travailler * * isoler le problème réel - si GetType ne retourne NULL, alors GetMethod est tout à fait étrangère. – user2246674
Vous nous avez donné un programme * * ne travail ... Qu'en est-il un programme qui ne fonctionne pas * *? (Ce code fonctionne vraiment pour moi ... il est pas vraiment clair si vous utilisez ce code exact et avoir des problèmes, ou quoi ...) –
je peux reproduire ce _if_ je mets ce code dans un espace de noms. Compte tenu de cela, -1 pour ne pas inclure le code réel. –