Est-il possible d'avoir deux parties (même espace de noms, même nom de classe) d'une classe partielle dans des DLL distinctes?
De Classes et méthodes partielles MSDN :
Toutes les définitions de type partiel censées faire partie du même type doivent être définies dans le même assemblage et le même module (fichier .exe ou .dll). Les définitions partielles ne peuvent pas couvrir plusieurs modules.
Les cours partiels sont une fonctionnalité purement linguistique. Lorsqu'un assemblage est compilé, les fichiers sont combinés pour créer le type. Il n'est pas possible de répartir les fichiers dans différents assemblages.
En fonction de ce que vous voulez faire, vous pourrez peut-être utiliser méthodes d'extension pour accomplir ce dont vous avez besoin.
Non ce n'est pas possible. Lorsque l'Assemblée est compilée, le cours doit être terminé.
Alors que d'autres réponses fournissent le désagréable "Non" que quiconque atterrissant sur cette page ne voulait ni voir ni entendre, j'ai été frappé par une autre pensée qui n'a pas encore été mentionnée ici. Si des classes partielles étaient autorisées dans des assemblages, on aurait accès à des membres privés de types existants qu'il n'aurait pas écrits, ce qui lui permettrait de les manipuler d'une manière non voulue par l'auteur d'origine, mettant ainsi en péril la fonctionnalité de toutes les classes héritées. aussi.
Non seulement cela, les classes dans d'autres assemblées (et leurs enfants) devraient être recompilées pour que cela fonctionne. Il n’est donc logiquement pas possible d’autoriser le fractionnement d’une classe sur différents assemblys.
Vous pouvez utiliser des méthodes d'extension lorsque vous souhaitez ajouter une méthode à une classe dans une dll différente. Le seul inconvénient de cette méthode est que vous ne pouvez pas ajouter de méthodes statiques.
La question est de savoir pourquoi voudriez-vous créer une classe partielle dans une autre assemblée? Vous pouvez définir des classes abstraites et des interfaces sur des assemblages. Vous devez peut-être examiner cela.