Wie kann verhindert werden, dass Clients Ihren Dienst in C# über eine öffentliche Schnittstelle überschreiben?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie kann verhindert werden, dass Clients Ihren Dienst in C# über eine öffentliche Schnittstelle überschreiben?

Post by Guest »

Wir entwickeln ein NuGet-Paket, das Kunden zum Hinzufügen zu ihrer ASP.NET-Site verwenden können.

Code: Select all

public interface IOurService {
void DoStuff();
}

public class OurService: IOurService {
public void DoStuff() {
//do things here
}
}

Dann haben wir eine Methode, um unsere Dienste in DI zu registrieren

Code: Select all

public static void AddOurServices(this IServiceCollection services) {
services.AddSingleton();
}
Der Grund, warum wir die Schnittstelle IOurService haben ist, dass der Kunde den Dienst in seinen Unit-Tests verspotten möchte. Wenn der Dienst gesperrt ist, sagen sie, dass das Testen schwierig sei.
Das Problem besteht jedoch darin, dass sie IOurService mit ihrer eigenen Implementierung über DI überschreiben können.

Code: Select all

services.AddOurSerivces();
services.AddSingleton();
Da wir die Schnittstelle benötigen, damit der Dienst verspottet werden kann, müssen wir die Schnittstelle behalten und öffentlich machen. Gibt es jedoch eine Praxis, die Kunden daran hindert, unsere Implementierung durch DI zu ersetzen? Wenn sie dies tun und es nicht funktioniert oder Fehler auftreten, werden sie Supportfälle erstellen, und wir müssen uns darum kümmern. Es wäre schön, wenn wir verhindern könnten, dass sie die Bibliothek überhaupt zerstören.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post