Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
J'ai bien essayé de charger le fichier en byte[] et d'utiliser
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
J'ai bien essayé de charger le fichier en byte[] et d'utiliser
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
J'ai bien essayé de charger le fichier en byte[] et d'utiliser
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Avant de chager un assembly, pensez à créer un AppDomain.
<MSDN>
// Set up the AppDomainSetup
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = "(some directory)";
setup.ConfigurationFile = "(some file)";
// Set up the Evidence
Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
evidence.AddAssembly("(some assembly)");
evidence.AddHost("(some host)");
// Create the AppDomain
AppDomain newDomain = AppDomain.CreateDomain("newDomain", evidence, setup);
</MSDN>
--
Paul Bacelar
"Yaume" wrote in message
news:
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Avant de chager un assembly, pensez à créer un AppDomain.
<MSDN>
// Set up the AppDomainSetup
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = "(some directory)";
setup.ConfigurationFile = "(some file)";
// Set up the Evidence
Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
evidence.AddAssembly("(some assembly)");
evidence.AddHost("(some host)");
// Create the AppDomain
AppDomain newDomain = AppDomain.CreateDomain("newDomain", evidence, setup);
</MSDN>
--
Paul Bacelar
"Yaume" <Yaume@discussions.microsoft.com> wrote in message
news:914A3C3A-0819-4A79-A4F5-0FEF56535A1D@microsoft.com...
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Avant de chager un assembly, pensez à créer un AppDomain.
<MSDN>
// Set up the AppDomainSetup
AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = "(some directory)";
setup.ConfigurationFile = "(some file)";
// Set up the Evidence
Evidence baseEvidence = AppDomain.CurrentDomain.Evidence;
Evidence evidence = new Evidence(baseEvidence);
evidence.AddAssembly("(some assembly)");
evidence.AddHost("(some host)");
// Create the AppDomain
AppDomain newDomain = AppDomain.CreateDomain("newDomain", evidence, setup);
</MSDN>
--
Paul Bacelar
"Yaume" wrote in message
news:
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain courrant.
J'ai bien essayé de charger le fichier en byte[] et d'utiliser Assembly.Load
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain courrant.
J'ai bien essayé de charger le fichier en byte[] et d'utiliser Assembly.Load
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain courrant.
J'ai bien essayé de charger le fichier en byte[] et d'utiliser Assembly.Load
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
courrant.
J'ai bien essayé de charger le fichier en byte[] et d'utiliser
Assembly.Load
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
courrant.
J'ai bien essayé de charger le fichier en byte[] et d'utiliser
Assembly.Load
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Bonjour,
Je cherche despérement le moyen de charger une assembly depuis le nom de
fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
courrant.
J'ai bien essayé de charger le fichier en byte[] et d'utiliser
Assembly.Load
mais j'ai systématiquement un message d'erreur sur un manque d'information
pour la desérialisation. De plus j'ai peur que cette méthode pose des
problèmes pour les dépendances de la dll.
Quelqu'un peut-il m'aider ?
D'avance merci.
Le plus simple c'est ceci:
Assembly asm =
myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
mais le mieux c'est de faire
Assembly asm =
Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
à partir de l'AppDomain lui-même
Simon
www.softfluent.com
"Yaume" a écrit dans le message de news:
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
> courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
> Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Le plus simple c'est ceci:
Assembly asm =
myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
mais le mieux c'est de faire
Assembly asm =
Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
à partir de l'AppDomain lui-même
Simon
www.softfluent.com
"Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de news:
914A3C3A-0819-4A79-A4F5-0FEF56535A1D@microsoft.com...
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
> courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
> Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Le plus simple c'est ceci:
Assembly asm =
myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
mais le mieux c'est de faire
Assembly asm =
Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
à partir de l'AppDomain lui-même
Simon
www.softfluent.com
"Yaume" a écrit dans le message de news:
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
> courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
> Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Merci,
La première méthode me plaît beaucoup plus que le chargement en tableau de
byte.
Par contre j'ai toujours le même problème. A savoir qu'il me dit
"Insufficient state to deserialize the object. More information is
needed.".
La deuxième méthode me semble encore mieux. Malheureusement je ne sais pas
comment le faire à partir du domain lui-même. J'ai mon domaine dans une
variable comment faire pour se placer dedans ?
D'avance merci.
"Simon Mourier" a écrit :Le plus simple c'est ceci:
Assembly asm >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
mais le mieux c'est de faire
Assembly asm >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
à partir de l'AppDomain lui-même
Simon
www.softfluent.com
"Yaume" a écrit dans le message de
news:
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom
> de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
> courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
> Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque
> d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Merci,
La première méthode me plaît beaucoup plus que le chargement en tableau de
byte.
Par contre j'ai toujours le même problème. A savoir qu'il me dit
"Insufficient state to deserialize the object. More information is
needed.".
La deuxième méthode me semble encore mieux. Malheureusement je ne sais pas
comment le faire à partir du domain lui-même. J'ai mon domaine dans une
variable comment faire pour se placer dedans ?
D'avance merci.
"Simon Mourier" a écrit :
Le plus simple c'est ceci:
Assembly asm >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
mais le mieux c'est de faire
Assembly asm >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
à partir de l'AppDomain lui-même
Simon
www.softfluent.com
"Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de
news:
914A3C3A-0819-4A79-A4F5-0FEF56535A1D@microsoft.com...
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom
> de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
> courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
> Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque
> d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
Merci,
La première méthode me plaît beaucoup plus que le chargement en tableau de
byte.
Par contre j'ai toujours le même problème. A savoir qu'il me dit
"Insufficient state to deserialize the object. More information is
needed.".
La deuxième méthode me semble encore mieux. Malheureusement je ne sais pas
comment le faire à partir du domain lui-même. J'ai mon domaine dans une
variable comment faire pour se placer dedans ?
D'avance merci.
"Simon Mourier" a écrit :Le plus simple c'est ceci:
Assembly asm >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
mais le mieux c'est de faire
Assembly asm >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
à partir de l'AppDomain lui-même
Simon
www.softfluent.com
"Yaume" a écrit dans le message de
news:
> Bonjour,
>
> Je cherche despérement le moyen de charger une assembly depuis le nom
> de
> fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
> courrant.
> J'ai bien essayé de charger le fichier en byte[] et d'utiliser
> Assembly.Load
> mais j'ai systématiquement un message d'erreur sur un manque
> d'information
> pour la desérialisation. De plus j'ai peur que cette méthode pose des
> problèmes pour les dépendances de la dll.
> Quelqu'un peut-il m'aider ?
>
> D'avance merci.
A priori il faut utiliser les méthodes CreateInstance de AppDomain
Simon.
"Yaume" a écrit dans le message de news:
> Merci,
> La première méthode me plaît beaucoup plus que le chargement en tableau de
> byte.
> Par contre j'ai toujours le même problème. A savoir qu'il me dit
> "Insufficient state to deserialize the object. More information is
> needed.".
>
> La deuxième méthode me semble encore mieux. Malheureusement je ne sais pas
> comment le faire à partir du domain lui-même. J'ai mon domaine dans une
> variable comment faire pour se placer dedans ?
>
> D'avance merci.
>
> "Simon Mourier" a écrit :
>
>> Le plus simple c'est ceci:
>>
>> Assembly asm > >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> mais le mieux c'est de faire
>>
>> Assembly asm > >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> à partir de l'AppDomain lui-même
>>
>> Simon
>> www.softfluent.com
>>
>> "Yaume" a écrit dans le message de
>> news:
>>
>> > Bonjour,
>> >
>> > Je cherche despérement le moyen de charger une assembly depuis le nom
>> > de
>> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> > courrant.
>> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> > Assembly.Load
>> > mais j'ai systématiquement un message d'erreur sur un manque
>> > d'information
>> > pour la desérialisation. De plus j'ai peur que cette méthode pose des
>> > problèmes pour les dépendances de la dll.
>> > Quelqu'un peut-il m'aider ?
>> >
>> > D'avance merci.
>>
>>
>>
A priori il faut utiliser les méthodes CreateInstance de AppDomain
Simon.
"Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de news:
FEC394AF-FF18-48D4-B09B-206975576D87@microsoft.com...
> Merci,
> La première méthode me plaît beaucoup plus que le chargement en tableau de
> byte.
> Par contre j'ai toujours le même problème. A savoir qu'il me dit
> "Insufficient state to deserialize the object. More information is
> needed.".
>
> La deuxième méthode me semble encore mieux. Malheureusement je ne sais pas
> comment le faire à partir du domain lui-même. J'ai mon domaine dans une
> variable comment faire pour se placer dedans ?
>
> D'avance merci.
>
> "Simon Mourier" a écrit :
>
>> Le plus simple c'est ceci:
>>
>> Assembly asm > >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> mais le mieux c'est de faire
>>
>> Assembly asm > >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> à partir de l'AppDomain lui-même
>>
>> Simon
>> www.softfluent.com
>>
>> "Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de
>> news:
>> 914A3C3A-0819-4A79-A4F5-0FEF56535A1D@microsoft.com...
>> > Bonjour,
>> >
>> > Je cherche despérement le moyen de charger une assembly depuis le nom
>> > de
>> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> > courrant.
>> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> > Assembly.Load
>> > mais j'ai systématiquement un message d'erreur sur un manque
>> > d'information
>> > pour la desérialisation. De plus j'ai peur que cette méthode pose des
>> > problèmes pour les dépendances de la dll.
>> > Quelqu'un peut-il m'aider ?
>> >
>> > D'avance merci.
>>
>>
>>
A priori il faut utiliser les méthodes CreateInstance de AppDomain
Simon.
"Yaume" a écrit dans le message de news:
> Merci,
> La première méthode me plaît beaucoup plus que le chargement en tableau de
> byte.
> Par contre j'ai toujours le même problème. A savoir qu'il me dit
> "Insufficient state to deserialize the object. More information is
> needed.".
>
> La deuxième méthode me semble encore mieux. Malheureusement je ne sais pas
> comment le faire à partir du domain lui-même. J'ai mon domaine dans une
> variable comment faire pour se placer dedans ?
>
> D'avance merci.
>
> "Simon Mourier" a écrit :
>
>> Le plus simple c'est ceci:
>>
>> Assembly asm > >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> mais le mieux c'est de faire
>>
>> Assembly asm > >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> à partir de l'AppDomain lui-même
>>
>> Simon
>> www.softfluent.com
>>
>> "Yaume" a écrit dans le message de
>> news:
>>
>> > Bonjour,
>> >
>> > Je cherche despérement le moyen de charger une assembly depuis le nom
>> > de
>> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> > courrant.
>> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> > Assembly.Load
>> > mais j'ai systématiquement un message d'erreur sur un manque
>> > d'information
>> > pour la desérialisation. De plus j'ai peur que cette méthode pose des
>> > problèmes pour les dépendances de la dll.
>> > Quelqu'un peut-il m'aider ?
>> >
>> > D'avance merci.
>>
>>
>>
le problème est que je ne veut pas instancier d'objet (je ne veut pas
executer leur constructeur). Le but est seulement de faire de la reflexion
dessus.
De plus pour utiliser l'un des createInstance il me faut connaitre un type
contenu dans la dll. Ce que je n'ai pas.
En fait le but est trés simple je veut a partir d'un chemin de dll faire
une
petite analyse de cette dernière. Il suffit donc d'utiliser Assembly.Load.
Mais je veut pouvoir décharger la dll une fois l'analyse terminée. Comme a
priori on ne peut décharger une assembly qu'en déchargeant son
application,
je cherche à la chargerdans une autre application.
"Simon Mourier" a écrit :A priori il faut utiliser les méthodes CreateInstance de AppDomain
Simon.
"Yaume" a écrit dans le message de
news:
> Merci,
> La première méthode me plaît beaucoup plus que le chargement en tableau
> de
> byte.
> Par contre j'ai toujours le même problème. A savoir qu'il me dit
> "Insufficient state to deserialize the object. More information is
> needed.".
>
> La deuxième méthode me semble encore mieux. Malheureusement je ne sais
> pas
> comment le faire à partir du domain lui-même. J'ai mon domaine dans une
> variable comment faire pour se placer dedans ?
>
> D'avance merci.
>
> "Simon Mourier" a écrit :
>
>> Le plus simple c'est ceci:
>>
>> Assembly asm >> >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> mais le mieux c'est de faire
>>
>> Assembly asm >> >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> à partir de l'AppDomain lui-même
>>
>> Simon
>> www.softfluent.com
>>
>> "Yaume" a écrit dans le message de
>> news:
>>
>> > Bonjour,
>> >
>> > Je cherche despérement le moyen de charger une assembly depuis le
>> > nom
>> > de
>> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> > courrant.
>> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> > Assembly.Load
>> > mais j'ai systématiquement un message d'erreur sur un manque
>> > d'information
>> > pour la desérialisation. De plus j'ai peur que cette méthode pose
>> > des
>> > problèmes pour les dépendances de la dll.
>> > Quelqu'un peut-il m'aider ?
>> >
>> > D'avance merci.
>>
>>
>>
le problème est que je ne veut pas instancier d'objet (je ne veut pas
executer leur constructeur). Le but est seulement de faire de la reflexion
dessus.
De plus pour utiliser l'un des createInstance il me faut connaitre un type
contenu dans la dll. Ce que je n'ai pas.
En fait le but est trés simple je veut a partir d'un chemin de dll faire
une
petite analyse de cette dernière. Il suffit donc d'utiliser Assembly.Load.
Mais je veut pouvoir décharger la dll une fois l'analyse terminée. Comme a
priori on ne peut décharger une assembly qu'en déchargeant son
application,
je cherche à la chargerdans une autre application.
"Simon Mourier" a écrit :
A priori il faut utiliser les méthodes CreateInstance de AppDomain
Simon.
"Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de
news:
FEC394AF-FF18-48D4-B09B-206975576D87@microsoft.com...
> Merci,
> La première méthode me plaît beaucoup plus que le chargement en tableau
> de
> byte.
> Par contre j'ai toujours le même problème. A savoir qu'il me dit
> "Insufficient state to deserialize the object. More information is
> needed.".
>
> La deuxième méthode me semble encore mieux. Malheureusement je ne sais
> pas
> comment le faire à partir du domain lui-même. J'ai mon domaine dans une
> variable comment faire pour se placer dedans ?
>
> D'avance merci.
>
> "Simon Mourier" a écrit :
>
>> Le plus simple c'est ceci:
>>
>> Assembly asm >> >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> mais le mieux c'est de faire
>>
>> Assembly asm >> >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> à partir de l'AppDomain lui-même
>>
>> Simon
>> www.softfluent.com
>>
>> "Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de
>> news:
>> 914A3C3A-0819-4A79-A4F5-0FEF56535A1D@microsoft.com...
>> > Bonjour,
>> >
>> > Je cherche despérement le moyen de charger une assembly depuis le
>> > nom
>> > de
>> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> > courrant.
>> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> > Assembly.Load
>> > mais j'ai systématiquement un message d'erreur sur un manque
>> > d'information
>> > pour la desérialisation. De plus j'ai peur que cette méthode pose
>> > des
>> > problèmes pour les dépendances de la dll.
>> > Quelqu'un peut-il m'aider ?
>> >
>> > D'avance merci.
>>
>>
>>
le problème est que je ne veut pas instancier d'objet (je ne veut pas
executer leur constructeur). Le but est seulement de faire de la reflexion
dessus.
De plus pour utiliser l'un des createInstance il me faut connaitre un type
contenu dans la dll. Ce que je n'ai pas.
En fait le but est trés simple je veut a partir d'un chemin de dll faire
une
petite analyse de cette dernière. Il suffit donc d'utiliser Assembly.Load.
Mais je veut pouvoir décharger la dll une fois l'analyse terminée. Comme a
priori on ne peut décharger une assembly qu'en déchargeant son
application,
je cherche à la chargerdans une autre application.
"Simon Mourier" a écrit :A priori il faut utiliser les méthodes CreateInstance de AppDomain
Simon.
"Yaume" a écrit dans le message de
news:
> Merci,
> La première méthode me plaît beaucoup plus que le chargement en tableau
> de
> byte.
> Par contre j'ai toujours le même problème. A savoir qu'il me dit
> "Insufficient state to deserialize the object. More information is
> needed.".
>
> La deuxième méthode me semble encore mieux. Malheureusement je ne sais
> pas
> comment le faire à partir du domain lui-même. J'ai mon domaine dans une
> variable comment faire pour se placer dedans ?
>
> D'avance merci.
>
> "Simon Mourier" a écrit :
>
>> Le plus simple c'est ceci:
>>
>> Assembly asm >> >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> mais le mieux c'est de faire
>>
>> Assembly asm >> >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>>
>> à partir de l'AppDomain lui-même
>>
>> Simon
>> www.softfluent.com
>>
>> "Yaume" a écrit dans le message de
>> news:
>>
>> > Bonjour,
>> >
>> > Je cherche despérement le moyen de charger une assembly depuis le
>> > nom
>> > de
>> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> > courrant.
>> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> > Assembly.Load
>> > mais j'ai systématiquement un message d'erreur sur un manque
>> > d'information
>> > pour la desérialisation. De plus j'ai peur que cette méthode pose
>> > des
>> > problèmes pour les dépendances de la dll.
>> > Quelqu'un peut-il m'aider ?
>> >
>> > D'avance merci.
>>
>>
>>
Oui c'est ce que je disais, mais je me suis mal exprimé, il faut créer
l'instance d'un objet remote qui va faire le travail. Voici le code:
Simon.
www.softfluent.com
public class RemoteLoader
{
public RemoteLoader(string asmPath)
{
Assembly asm =
AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(asmPath));
Console.WriteLine("domain=" + AppDomain.CurrentDomain.FriendlyName); //
affiche "test"
}
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
AppDomain domain = AppDomain.CreateDomain("test");
string path = @"......ClassLibrary1bindebugClassLibrary1.dll";
domain.CreateInstance(Assembly.GetExecutingAssembly().FullName,
typeof(RemoteLoader).FullName,
false, BindingFlags.CreateInstance | BindingFlags.Public |
BindingFlags.Instance,
null, new object[]{path}, null, null, null);
}
}
"Yaume" a écrit dans le message de news:
> le problème est que je ne veut pas instancier d'objet (je ne veut pas
> executer leur constructeur). Le but est seulement de faire de la reflexion
> dessus.
> De plus pour utiliser l'un des createInstance il me faut connaitre un type
> contenu dans la dll. Ce que je n'ai pas.
>
> En fait le but est trés simple je veut a partir d'un chemin de dll faire
> une
> petite analyse de cette dernière. Il suffit donc d'utiliser Assembly.Load.
> Mais je veut pouvoir décharger la dll une fois l'analyse terminée. Comme a
> priori on ne peut décharger une assembly qu'en déchargeant son
> application,
> je cherche à la chargerdans une autre application.
>
>
> "Simon Mourier" a écrit :
>
>> A priori il faut utiliser les méthodes CreateInstance de AppDomain
>> Simon.
>>
>> "Yaume" a écrit dans le message de
>> news:
>>
>> > Merci,
>> > La première méthode me plaît beaucoup plus que le chargement en tableau
>> > de
>> > byte.
>> > Par contre j'ai toujours le même problème. A savoir qu'il me dit
>> > "Insufficient state to deserialize the object. More information is
>> > needed.".
>> >
>> > La deuxième méthode me semble encore mieux. Malheureusement je ne sais
>> > pas
>> > comment le faire à partir du domain lui-même. J'ai mon domaine dans une
>> > variable comment faire pour se placer dedans ?
>> >
>> > D'avance merci.
>> >
>> > "Simon Mourier" a écrit :
>> >
>> >> Le plus simple c'est ceci:
>> >>
>> >> Assembly asm > >> >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>> >>
>> >> mais le mieux c'est de faire
>> >>
>> >> Assembly asm > >> >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>> >>
>> >> à partir de l'AppDomain lui-même
>> >>
>> >> Simon
>> >> www.softfluent.com
>> >>
>> >> "Yaume" a écrit dans le message de
>> >> news:
>> >>
>> >> > Bonjour,
>> >> >
>> >> > Je cherche despérement le moyen de charger une assembly depuis le
>> >> > nom
>> >> > de
>> >> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> >> > courrant.
>> >> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> >> > Assembly.Load
>> >> > mais j'ai systématiquement un message d'erreur sur un manque
>> >> > d'information
>> >> > pour la desérialisation. De plus j'ai peur que cette méthode pose
>> >> > des
>> >> > problèmes pour les dépendances de la dll.
>> >> > Quelqu'un peut-il m'aider ?
>> >> >
>> >> > D'avance merci.
>> >>
>> >>
>> >>
>>
>>
>>
Oui c'est ce que je disais, mais je me suis mal exprimé, il faut créer
l'instance d'un objet remote qui va faire le travail. Voici le code:
Simon.
www.softfluent.com
public class RemoteLoader
{
public RemoteLoader(string asmPath)
{
Assembly asm =
AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(asmPath));
Console.WriteLine("domain=" + AppDomain.CurrentDomain.FriendlyName); //
affiche "test"
}
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
AppDomain domain = AppDomain.CreateDomain("test");
string path = @"......ClassLibrary1bindebugClassLibrary1.dll";
domain.CreateInstance(Assembly.GetExecutingAssembly().FullName,
typeof(RemoteLoader).FullName,
false, BindingFlags.CreateInstance | BindingFlags.Public |
BindingFlags.Instance,
null, new object[]{path}, null, null, null);
}
}
"Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de news:
E6A90550-E8F1-4BC6-96F0-DA77F79AC385@microsoft.com...
> le problème est que je ne veut pas instancier d'objet (je ne veut pas
> executer leur constructeur). Le but est seulement de faire de la reflexion
> dessus.
> De plus pour utiliser l'un des createInstance il me faut connaitre un type
> contenu dans la dll. Ce que je n'ai pas.
>
> En fait le but est trés simple je veut a partir d'un chemin de dll faire
> une
> petite analyse de cette dernière. Il suffit donc d'utiliser Assembly.Load.
> Mais je veut pouvoir décharger la dll une fois l'analyse terminée. Comme a
> priori on ne peut décharger une assembly qu'en déchargeant son
> application,
> je cherche à la chargerdans une autre application.
>
>
> "Simon Mourier" a écrit :
>
>> A priori il faut utiliser les méthodes CreateInstance de AppDomain
>> Simon.
>>
>> "Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de
>> news:
>> FEC394AF-FF18-48D4-B09B-206975576D87@microsoft.com...
>> > Merci,
>> > La première méthode me plaît beaucoup plus que le chargement en tableau
>> > de
>> > byte.
>> > Par contre j'ai toujours le même problème. A savoir qu'il me dit
>> > "Insufficient state to deserialize the object. More information is
>> > needed.".
>> >
>> > La deuxième méthode me semble encore mieux. Malheureusement je ne sais
>> > pas
>> > comment le faire à partir du domain lui-même. J'ai mon domaine dans une
>> > variable comment faire pour se placer dedans ?
>> >
>> > D'avance merci.
>> >
>> > "Simon Mourier" a écrit :
>> >
>> >> Le plus simple c'est ceci:
>> >>
>> >> Assembly asm > >> >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>> >>
>> >> mais le mieux c'est de faire
>> >>
>> >> Assembly asm > >> >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>> >>
>> >> à partir de l'AppDomain lui-même
>> >>
>> >> Simon
>> >> www.softfluent.com
>> >>
>> >> "Yaume" <Yaume@discussions.microsoft.com> a écrit dans le message de
>> >> news:
>> >> 914A3C3A-0819-4A79-A4F5-0FEF56535A1D@microsoft.com...
>> >> > Bonjour,
>> >> >
>> >> > Je cherche despérement le moyen de charger une assembly depuis le
>> >> > nom
>> >> > de
>> >> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> >> > courrant.
>> >> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> >> > Assembly.Load
>> >> > mais j'ai systématiquement un message d'erreur sur un manque
>> >> > d'information
>> >> > pour la desérialisation. De plus j'ai peur que cette méthode pose
>> >> > des
>> >> > problèmes pour les dépendances de la dll.
>> >> > Quelqu'un peut-il m'aider ?
>> >> >
>> >> > D'avance merci.
>> >>
>> >>
>> >>
>>
>>
>>
Oui c'est ce que je disais, mais je me suis mal exprimé, il faut créer
l'instance d'un objet remote qui va faire le travail. Voici le code:
Simon.
www.softfluent.com
public class RemoteLoader
{
public RemoteLoader(string asmPath)
{
Assembly asm =
AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(asmPath));
Console.WriteLine("domain=" + AppDomain.CurrentDomain.FriendlyName); //
affiche "test"
}
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
AppDomain domain = AppDomain.CreateDomain("test");
string path = @"......ClassLibrary1bindebugClassLibrary1.dll";
domain.CreateInstance(Assembly.GetExecutingAssembly().FullName,
typeof(RemoteLoader).FullName,
false, BindingFlags.CreateInstance | BindingFlags.Public |
BindingFlags.Instance,
null, new object[]{path}, null, null, null);
}
}
"Yaume" a écrit dans le message de news:
> le problème est que je ne veut pas instancier d'objet (je ne veut pas
> executer leur constructeur). Le but est seulement de faire de la reflexion
> dessus.
> De plus pour utiliser l'un des createInstance il me faut connaitre un type
> contenu dans la dll. Ce que je n'ai pas.
>
> En fait le but est trés simple je veut a partir d'un chemin de dll faire
> une
> petite analyse de cette dernière. Il suffit donc d'utiliser Assembly.Load.
> Mais je veut pouvoir décharger la dll une fois l'analyse terminée. Comme a
> priori on ne peut décharger une assembly qu'en déchargeant son
> application,
> je cherche à la chargerdans une autre application.
>
>
> "Simon Mourier" a écrit :
>
>> A priori il faut utiliser les méthodes CreateInstance de AppDomain
>> Simon.
>>
>> "Yaume" a écrit dans le message de
>> news:
>>
>> > Merci,
>> > La première méthode me plaît beaucoup plus que le chargement en tableau
>> > de
>> > byte.
>> > Par contre j'ai toujours le même problème. A savoir qu'il me dit
>> > "Insufficient state to deserialize the object. More information is
>> > needed.".
>> >
>> > La deuxième méthode me semble encore mieux. Malheureusement je ne sais
>> > pas
>> > comment le faire à partir du domain lui-même. J'ai mon domaine dans une
>> > variable comment faire pour se placer dedans ?
>> >
>> > D'avance merci.
>> >
>> > "Simon Mourier" a écrit :
>> >
>> >> Le plus simple c'est ceci:
>> >>
>> >> Assembly asm > >> >> myDomain.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>> >>
>> >> mais le mieux c'est de faire
>> >>
>> >> Assembly asm > >> >> Assembly.Load(AssemblyName.GetAssemblyName(@"c:tototiti.dll"));
>> >>
>> >> à partir de l'AppDomain lui-même
>> >>
>> >> Simon
>> >> www.softfluent.com
>> >>
>> >> "Yaume" a écrit dans le message de
>> >> news:
>> >>
>> >> > Bonjour,
>> >> >
>> >> > Je cherche despérement le moyen de charger une assembly depuis le
>> >> > nom
>> >> > de
>> >> > fichier (path compris) dans un AppDomain qui n'est pas l'AppDomain
>> >> > courrant.
>> >> > J'ai bien essayé de charger le fichier en byte[] et d'utiliser
>> >> > Assembly.Load
>> >> > mais j'ai systématiquement un message d'erreur sur un manque
>> >> > d'information
>> >> > pour la desérialisation. De plus j'ai peur que cette méthode pose
>> >> > des
>> >> > problèmes pour les dépendances de la dll.
>> >> > Quelqu'un peut-il m'aider ?
>> >> >
>> >> > D'avance merci.
>> >>
>> >>
>> >>
>>
>>
>>