У меня нет опыта использования рефлексии и общих методов, вот два метода.Я думаю, вы понимаете, что я пытаюсь сделать.
public static T GetInHeaderProperty<T>() where T : new()
{
dynamic result = new T();
result.CompanyId = ConfigurationManager.AppSettings["CompanyId"];
result.UserId = ConfigurationManager.AppSettings["UserId"];
result.Password = ConfigurationManager.AppSettings["Password"];
result.MessageId = ConfigurationManager.AppSettings["MessageId"];
Type platformType = typeof(T).GetProperty("PlatformType").PropertyType;
// Here is my problem, I can not compile my code because of this line
result.PlatformType = (dynamic)GetPlatformType<platformType>();
//-------------------------------------------------------------------
return (T)result;
}
public static T GetPlatformType<T>() where T : struct
{
string platform = System.Configuration.ConfigurationManager.AppSettings["Platform"];
T value;
if (Enum.TryParse(platform, out value))
return value;
else
return default(T);
}
Я получаю следующую ошибку во время компиляции:
Имя типа или пространства имен 'platformType' не найдено (вы пропустили директиву using илиссылка на сборку?).
Как мне вызвать этот метод?
Заранее спасибо.