Efficiënt uitdragen van interface-wijzigingen in Visual Studio

Terwijl ik me verdiep in de wereld van ontkoppelings- en afhankelijkheidsinjectie, merk ik dat ik steeds meer interfaces schrijf. Ik doe mijn best om interfaces te maken die precies weten hoe ik ze ga gebruiken, maar het komt erop neer dat ik uiteindelijk de interface implementeer en vervolgens wijzig hoe deze wordt gebruikt.

Ik ben gewend geraakt aan het automatische refactoring-vermogen van VS. Maar ik heb geconstateerd dat het niet ondersteunt het automatisch verspreiden van interface-wijzigingen naar de implementatieklassen. Is er een manier om dit automatisch te doen, dus ik kopieer en plak niet totdat mijn compileerfouten verdwijnen?

0

2 antwoord

Omdat Visual Studio of elk ander hulpmiddel niet kan "weten" wat de implementatie zou moeten zijn, valt het voor jou, de ontwikkelaar, om het te implementeren.

Als u een interfacedefinitie wijzigt, is het een goed ding dat de compilatie mislukt totdat u de wijziging hebt geïmplementeerd.

0
toegevoegd
@GarrisonNeely - Als u een lid toevoegt aan uw interface, hoe zou dat dan propageren? Als u een formele parameter toevoegt?
toegevoegd de auteur Oded, de bron
Ik ben het ermee eens dat ik wil dat de compilatie wordt verbroken, het lijkt gewoon een triviale taak die Visual Studio kan doen om mijn interface-wijzigingen door de implementeerders te laten verspreiden, net zoals wanneer ik een variabele of klassennaam wijzig.
toegevoegd de auteur Garrison Neely, de bron

Wilde terugkomen en deze vraag beantwoorden:

Als u de naam van een interfacemethode wilt wijzigen en u deze van de instantiatieklasse wilt veranderen, geeft Visual Studio u de mogelijkheid om deze naar de interface te verspreiden (evenals alle andere oproepen in uw gehele code, zoals normaal). Als u de methode-naam in de interfacedefinitie wijzigt, wordt de wijziging niet doorgevoerd naar de instantiating-klassen.

0
toegevoegd