I have 3 object classes:
public class MessageData
{
public string MessageID { get; set; }
public string Date { get; set; }
public bool IsSent { get; set; }
public string EmployeeInfo { get; set; }
}
public class MultiMessageData
{
public string MessageID { get; set; }
public string Date { get; set; }
public bool IsSent { get; set; }
public byte MessageType { get; set; }
public string MessageType { get; set; }
public string Platform { get; set; }
public string EmployeeInfo { get; set; }
}
public class SocialData
{
public string MessageID { get; set; }
public string Date { get; set; }
public bool IsSent { get; set; }
public bool IsReceived { get; set; }
public byte MessageType { get; set; }
public string MessageType { get; set; }
public string Message { get; set; }
public string UserName { get; set; }
}
Then I have a function right now that only implement the MessageData class:
public void SendData()
{
List<MessageData> data = new List<MessageData>();
// some work here with data variable...
_sendRepository.Send(data);
}
Now what I need is to keep most of the logic but a way that I can instantiate a variable that can be of any class type for example:
public void SendData()
{
var data;
if(logic == 1){
data = new List<MessageData>();
} else if(logic == 2){
data = new List<MultiMessageData>();
}else {
data = new List<SocialData>();
}
// some work here...
// if I do that then this Send method I will change it to be a Generic T maybe.
_sendRepository.Send(data);
}
Any clue?
SendDatatoSendData<T>and invoke closed type by yourlogic