2017-10-11 4 views
0
public interface IMyService 
{ 
    void GetValue(); 
} 

public class MyService : ClientBase<IMyService>, IMyService 
{ 
    public MyService() 
    { 
     EndPoint = "Test"; 
    } 
    public void GetValue() 
    { 

    } 
} 
public interface ICommunication 
{ 
    void Start(); 
} 

public class ClientBase<T> : ICommunication 
{ 
    public string EndPoint { get; set; } 
    public void Start() 
    { 
    } 
} 

Mon projet de testComment lire les propriétés de la classe de base de mon instance d'interface

[TestClass] 
public class UnitTest1 
{ 
    [TestMethod] 
    public void TestMethod1() 
    { 
     ICommunication communication = new MyService(); 
    } 
} 

Comment accéder i les propriétés EndPoint de l'objet de communication?

Mon objectif est de lire la valeur du point de terminaison à partir de l'instance de communication. Comment puis-je convertir l'interface ICommunication à ClientBase classe générique

Note: nous avons classes.Is de services multiples at-il un moyen d'obtenir l'instance de ClientBase de mon ICommunication

Répondre

0

L'interface ICommunication n'a pas EndPoint et quand vous écrire cette ligne de code:

ICommunication communication = new MyService(); 

communication est une référence de type ICommunication mais il pointe vers une instance de MyService. Ainsi, vous pouvez le faire pour le lancer à MyService et ensuite y accéder:

string ep = (communication as MyService).EndPoint; 
+0

J'ai oublié de mettre celui-ci. nous avons plusieurs classes de service. Existe-t-il un moyen d'obtenir l'instance de ClientBase de mon ICommunication –