J'utilise Prism Unity dans une application WPF et j'ai quelques problèmes pour comprendre l'implémentation correcte d'un service partagé. J'ai créé un projet DLL et ajouté une interface.Modularité Services partagés Interfaces architecture et Interfaceversiondescription
Interface (DLL):
public interface IMyservice
{
string Version { get; }
int DoSomething(int x, int y);
}
L'implémentation de l'interface (classe) est fait à l'intérieur d'un module et le module est chargé au démarrage de l'application hôte, bien sûr, j'ai ajouté ma DLL d'interface comme référence dans mon application hôte.
ModuleA:
public class Myservice : IMyservice
{
public string Version => "V1.00";
public int DoSomething(int x, int y)
{
return x + y;
}
}
Je me suis inscrit le IMyService dans le Bootstrapper de mon application hôte. J'ai ajouté à la DLL de l'interface ModuleB Project comme référence, puis je suis capable d'utiliser l'instance de Myservice en résolvant à partir du conteneur unity.
container.Resolve<MyService>.DoSomething(1,1);
Questions:
Est-ce l'architecture valide ou je dois mettre la mise en œuvre de l'interface dans mon interface.dll? J'ai fait l'implémentation de l'interface dans le module car je voudrais partager uniquement avec d'autres mon interface.dll et non l'implémentation. J'ai mis la mise en œuvre dans le moduleA parce que je voudrais l'avoir modulaire. Si cette architecture est une conception valide, alors je voudrais savoir comment je peux gérer la description de la version de mon interface.dll et non la description de la version de moduleA pendant l'exécution.
Voulez-vous mettre à jour le _implementation_ ou le _interface_? Actuellement, vous versionnez l'implémentation, 'AdvancedServcie'might retourner' V2.00' pour 'Version', mais ils implémentent tous les deux la même interface. Jetez un oeil à ma réponse à cette question connexe: https://stackoverflow.com/questions/40827080/c-sharp-prism-for-wpf-common-modules-libraries-upgrading-strategy/40827662#40827662 – Haukinger
Je voudrais version à la fois l'interface et la mise en œuvre, mais indépendants les uns des autres. – Shazter