Я знаю, что этот вопрос звучит так, будто это может быть дубликат, но я не мог найти ничего, связанного с тем, что я собираюсь описать.Передача общего объекта методу в C#
Я пытаюсь создать проект шаблонов электронной почты html. У меня есть ViewModel (только называя их, что для ясности, что они просто классы со свойствами, необходимыми для этой электронной почты для передачи значений, которые должны быть заменены в шаблоне)
public class EmailViewModels
{
public class AccountClosedEmailViewModel
{
public string Fullname { get; set; }
public string ApplicationName { get; set; }
public string Username { get; set; }
public string RenewRegistrationUrl { get; set; }
}
public class AccountReopenedEmailViewModel
{
public string Fullname { get; set; }
public string ApplicationName { get; set; }
public string Username { get; set; }
public string RenewRegistrationUrl { get; set; }
public string CancelVerificationUrl { get; set; }
}
public class ContactFormEmailViewModel
{
public string Fullname { get; set; }
public string ApplicationName { get; set; }
}
//rest removed for brevity
}
хочет метод, который принимает по электронной почте view model, это может быть любой из тех, которые определены в вышеприведенном классе, поэтому у меня есть общий метод, чтобы исключить меня с помощью BuildHtmlFromTemplate для каждого типа модели представления.
public string BuildHtmlFromTemplate(templateFilePath, passing any one of the email viewmodels defined in the class)
{
var temp = File.IO.ReadAllText(templateFilePath);
temp.Replace("{username}", modelipassedin.username);
//do rest
return temp;
}
Возможно ли это?
что вы хотите сделать внутри _BuildHtmlFromTemplate_? почему бы не добавить функцию для каждого класса? – Grundy
Ну, у вас может быть параметр типа 'object' ... но мы не знаем, что этот метод должен делать - как выглядит код. Например, вы можете использовать отражение, чтобы найти свойства. –
@JonSkeet и использовать общий объект вместо объекта BuildHtmlFromTemplate (T o) ' –
Grundy