vendredi 12 mai 2017

Smart Encapsulation from similar objects

I have a few Soap-requests that all start the same: First request:

var client = new Conn.Team.z_proj_team_spQueryPortClient();
client.Endpoint.Address = EndPoint;
var query = new Conn.Team.z_proj_team_spQuery
{
    Filter = new Conn.Team.z_proj_team_spFilter
    {
        param_code = projectCode
    }
};
var auth = new Conn.Team.Auth { Username = _username, Password = _password };
var records = client.Query(auth, query).Records;

second request:

var client = new Conn.Task.z_proj_Task_spQueryPortClient();
client.Endpoint.Address = EndPoint;
var query = new Conn.Task.z_proj_Task_spQuery
{
    Filter = new Conn.Task.z_proj_Task_spFilter
    {
        param_code = projectCode
    }
};
var auth = new Conn.Task.Auth { Username = _username, Password = _password };
var records = client.Query(auth, query).Records;

As you can see, the code looks nearly the same, but these are completely different objects (that do not share a base class) but who use the same property-names.

Because I have about 10 of these calls, is there a good way to wrap these functions? Would you even advice to do so or would Reflection simple makes it "more evil"?

(BTW:) I am unsure what a good tag would be for my problem. Feel free to change them to better ones





Aucun commentaire:

Enregistrer un commentaire