Classes partielles dans des dll distinctes
Est-il possible d'avoir deux parties (le même espace de noms, même nom de la classe) à une classe partielle dans des Dll distinctes?
- comme les autres ont dit, il n'est pas possible, mais il existe des moyens pour compléter les classes avec le nouveau comportement à partir de différentes sources, exactement ce que vous voulez faire dans différents dll?
- Dans mon cas, je veux ajouter un couple de méthodes statiques d'une classe qui est définie dans une 3e partie de la bibliothèque. Les méthodes d'Extension ne fonctionne pas et aucune des interfaces et de l'héritage, parce que la classe est statique. Après avoir découvert que vous pouvez avoir des classes statiques je suis venu ici pour savoir si il fonctionne dans les assemblées, mais, hélas, cela ressemble à cela ne fonctionne pas, soit.
Vous devez vous connecter pour publier un commentaire.
De MSDN -Partiel de Classes et de Méthodes:
Pas. Classes partielles sont purement fonctionnalité du langage. Lorsqu'une assemblée est compilé, les fichiers sont réunis pour créer le type. Il n'est pas possible de diffuser les fichiers dans les différents assemblages.
En fonction de ce que vous voulez faire, cependant, vous pourriez être en mesure d'utiliser les méthodes d'extension pour accomplir ce que vous avez besoin.
Non, il n'est pas possible. Lorsque l'assemblée est compilé la classe doit être terminé.
Vous pouvez utiliser des méthodes d'extension lorsque vous souhaitez ajouter une méthode à une classe dans une autre dll.
Le seul inconvénient de cette méthode est que vous ne pouvez pas ajouter des méthodes statiques.
Tandis que d'autres réponses que fournissent les désagréables "Non" que n'importe qui d'atterrissage sur cette page ne voulais pas le voir ou de l'entendre, j'ai été frappé par une autre pensée qui n'a pas été mentionné ici encore. Si des classes partielles ont été autorisés à travers des assemblages, on a accès aux membres privés de types existants qui n'ont pas été écrits par lui, lui permettant ainsi de les manipuler à l'aide des moyens qui n'étaient pas prévus par l'auteur original, mettant ainsi en péril le fonctionnement de tous les héritant des classes trop.
Non seulement que ceux de classes dans d'autres assemblées (et leurs enfants) ont besoin d'être recompilées pour le faire fonctionner. Ainsi, il est logiquement pas possible de permettre le découpage d'une classe sur les différentes assemblées.
La question est de savoir pourquoi vous voulez faire une classe partielle dans une autre assemblée? Vous pouvez définir les classes abstraites et les interfaces à travers des assemblées, peut-être vous avez besoin de regarder à cela.