Sorunun doğru olup olmadığını bilmiyorum, ancak yapmam gereken şey, ilgili veriyi içeren messagetoprocess deposu yönteminden doğru varlığı almak, bunu bu senaryoda nasıl yapabilirim? (kod aşağıda)Geri Dönülecek <Type> Listesini bilmeden jenerik verileri almak mümkün mü?
AutoMapper'ı kullanıyorum.
Bir MessageEntity oluşturabildiğimi ve Arabirimi elimine edip tüm özellikleri bir araya getirebileceğimi biliyorum, ancak tam olarak yapmayacağım bir şey var.
Arabirim:
public interface IMessage
{
string MessageFrom { get; set; }
string MessageTo { get; set; }
{
Uygulayıcı Varlıkları
public class EmailMessageEntity : IMessage
{
public bool IsMessageBodyHtml { get; set; }
}
public class SmsMessageEntity : IMessage
{
public bool IsMmsMessage { get; set; }
}
Modeller:
İşte bende ne olduğunupublic class EmailMessage
{
public string MessageFrom { get; set; }
public string MessageTo { get; set; }
public bool IsMessageBodyHtml { get; set; }
}
public class SMSMessage
{
public string MessageFrom { get; set; }
public string MessageTo { get; set; }
public bool IsMmsMessage { get; set; }
}
Repositry:
public static List<*****Entity problem*****> RetrieveMessageToProcess()
{
var commandSettings = new CommandSettings
{
CommandText = @"[Schema].[RetrieveMessageToProcess]",
CommandType = CommandType.StoredProcedure
};
return new MsSqlProviderBase(DbConnectionString, commandSettings).ExecuteQuery<*****Entity problem*****>();
}
onu kullanma:
//code excerpt
var messagesToProcess = Db.RetrieveMessageToProcess(); //repository
if (messagesToProcess == null) return;
// Process Message(s)
foreach (var messageEntity in messagesToProcess)
{
if (Email) // this is just the verification example not the actual statement and not a variable
{
Mapper.CreateMap<EmailMessageEntity, EmailMessage>();
var emailMessage = Mapper.Map<EmailMessage>(messageEntity);
}
else if (SMS)
{
Mapper.CreateMap<SMSMessageEntity, SMSMessage>();
var smsMessage = Mapper.Map<SmsMessage>(messageEntity);
}
}
Cevabınız için teşekkür ederiz. Bu sadece uygulamaya çalıştığım kodun bir parçası. Belirli mesaj varlıkları (sms, e-posta, ses, vb.) Ile ilgili daha spesifik özellikler var, sadece bunu ne demek istediğimi anlamanıza yardımcı olmak için kullandım. – Ray