J'utilise un .NET CF 3.5 pour créer une DLL et appeler un membre public de la DLL à partir de l'exe. Le code dll est donnée ci-dessous:NotSupportedException déclenché lors de l'appel InvokeMember
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
namespace DllPoc
{
public class DllCheck
{
public String ReturnString()
{
return "Hello DLL";
}
}
}
et le code exe est:
public partial class Form1 : Form
{
String _AppPath;
String _AppImage;
String _AppName;
public Form1()
{
InitializeComponent();
//ReadAppLoaderXML();
//StartApp();
Assembly assembly = Assembly.LoadFrom("\\test\\DllPoc.dll");
Type type = assembly.GetType("DllPoc.DllCheck");
var obj = Activator.CreateInstance(type);
String s = (String)type.InvokeMember("RetrurnString",
BindingFlags.InvokeMethod | BindingFlags.Instance |
BindingFlags.Public, null, obj, null);
MessageBox.Show(s);
// Exit
Application.Exit();
}
}
Lors de l'exécution de la ligne:
String s = (String)type.InvokeMember("RetrurnString",
BindingFlags.InvokeMethod | BindingFlags.Instance |
BindingFlags.Public, null, obj, null);
NotSupportedException est levée.
Est-ce la bonne procédure? Merci.
Il semble que la surcharge qui ne prend pas un 'CultureInfo' [est pris en charge dans CF 3.5] (http://msdn.microsoft.com/fr-fr /library/66btctbe(v=vs.90).aspx) –
@JeffMercado: Nous regardons la même surcharge, juste différentes versions de la documentation. –
@Jon Skeet. Je vous remercie. Ça a marché. – Phoenix