How do I retrieve the name of the type T that was used to initialize RuleViewModelBase? Right now I'm getting "RuntimeType"
public abstract class RuleViewModelBase<T> : IRuleViewModel where T : RuleEntity, new() { public bool Editable { set { _editable = value; if (Condition != null) { Condition.Editable = value; } if (Content != null) { Content.Editable = value; } } get { return _editable; } } private bool _editable; private string _groupsJson; private List<RuleGroupJM> _groups; public string RuleType { get { return typeof(T).GetType().Name; } } public RuleContentVm Content { set; get; } public RuleConditionVm Condition { set; get; } public virtual void SaveToEntity(T rule) { } public RuleEntity ConvertToEntity() { T rule = new T(); rule = (T)this.Content.SaveToEntity(rule); rule = (T)this.Condition.SaveToEntity(rule); SaveToEntity(rule); return rule; } }
typeof(T)yields the type ofT. CallingGetTypeon that gives the type of the value returned bytypeof. This is obviously not what you want.