0
RuleViewModelBaseの初期化に使用されたタイプTの名前を取得するにはどうすればよいですか?タイプTの名前を取得する方法は?私は常に "RuntimeType"を取得しています
typeof(T).Name
の代わりに::
typeof(T).GetType().Name
あなたがそのタイプの名前を取得していたコードを今私はあなたがしたいと思います
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)'は 'T'の型を返します。 'GetType'を呼び出すと、' typeof'によって返された値の型が与えられます。これは明らかにあなたが望むものではありません。 –