J'ai 2 assemblages (étrangers et locaux). L'assemblage étranger ne peut pas être modifié. Je voudrais étendre une classe étrangère telle qu'elle va maintenant implémenter une interface locale. Est-ce possible en C#?C#: Puis-je étendre une classe étrangère de telle sorte qu'elle implémente une interface locale
EDIT: Je sais que je peux faire ce qui suit:
// foreign.dll
namespace DX {
public struct Vector3 {
...
}
}
// local.dll
namespace MyDX {
public static class Extensions {
public static void MyExtensionMethod(this Vector3 vec, int index){
...
}
}
}
Ce que je suis intéressé à faire est de forcer la classe/struct étrangères pour mettre en œuvre une interface particulière (sans utiliser l'héritage). Je voudrais utiliser Vector3 comme un type dans une classe générique:
public class MyGeneric<T> where T: IComparable<T> {
T _value;
}
Le struct ci-dessus: Vector3 ne met pas en œuvre IComparable mais je voudrais utiliser la réflexion pour implémenter l'interface afin que je puisse utiliser la classe étrangère/struct dans sa forme existante (c'est-à-dire sans utiliser l'héritage). L'héritage peut être nécessaire ...
Cela ne peut pas être fait. Pouvez-vous décrire ce que vous voulez réaliser à travers cela? Parce que ça ressemble à un [problème XY] (http://xyproblem.info/) pour moi. – Xiaoy312
'class Local: Etranger, ILocalInterface'? Si vous avez besoin d'utiliser seulement l'interface, il est indifférent de savoir quelle classe l'implémente. – taffer
Que voulez-vous accomplir en faisant cela? – GMR516