خرید بک لینک

Vote count: 0

I have Parent Model class and viewModel class. Parent Model class has GetViewModel() class and I am trying to inherit Parent class and override the GetViewModel().However, it throws an infinite exception.

Parent ViewModel Class:

  public class ParentViewModel

{ public IEnumerable Choices { get; set; }

public object Value { get; set; }

public IMetaField MetaField { get; set; }

public bool IsRequired { get; set; }

public bool HasOtherChoice { get; set; }

public string ValidationAttributes { get; set; }

public string RequiredViolationMessage { get; set; }

public string CssClass { get; set; }

}

Parent Model Class:

  public class ChildModel : ParentModel

{ public string CorticonEntityName { get; set; }

public string CorticonFieldName { get; set; }


public override object GetViewModel(object value, IMetaField metaField)
{
  this.Value = value;
  retu (object)new ChildViewModel()
  {
    Choices = this.DeserializeChoices(),
    Value = value,
    MetaField = this.MetaField,
    HasOtherChoice = this.HasOtherChoice,
    IsRequired = (this.ValidatorDefinition.Required.HasValue && this.ValidatorDefinition.Required.Value),
    ValidationAttributes = this.BuildValidationAttributesString(),
    RequiredViolationMessage = this.ValidatorDefinition.RequiredViolationMessage,
    CssClass = this.CssClass
  };
}

}

I have created two child classes ChildModel class and ChildViewModel classs which are inheriting parent lasses.

I want to override the GetViewModel() of parent class so I have done as below and working perfectly.

ChildViewModel class:

public class ChildViewModel:ParentViewModel

{

public string CorticonEntityName { get; set; }

public string CorticonFieldName { get; set; }

}

ChildModel Class:

  public class ChildModel : ParentModel

{ public string CorticonEntityName { get; set; }

public string CorticonFieldName { get; set; }


public override object GetViewModel(object value, IMetaField metaField)
{
  this.Value = value;
  retu (object)new ChildViewModel()
  {
    Choices = this.DeserializeChoices(),
    Value = value,
    MetaField = this.MetaField,
    HasOtherChoice = this.HasOtherChoice,
    IsRequired = (this.ValidatorDefinition.Required.HasValue && this.ValidatorDefinition.Required.Value),
    ValidationAttributes = this.BuildValidationAttributesString(),
    RequiredViolationMessage = this.ValidatorDefinition.RequiredViolationMessage,
    CssClass = this.CssClass,
    CorticonEntityName=this.CorticonEntityName,
    CorticonFieldName=this.CorticonFieldName
  };
}

}

But I don’t’ want set all the properties in child class GetViewModel() again as the parent GetViewModel() is doing. I wanted to reuse the Parent class method and set new properties in Child class so I tried as below but it is throwing infinite loop.

ChildViewModel class:

public class ChildViewModel:ParentViewModel

{

public string CorticonEntityName { get; set; }

public string CorticonFieldName { get; set; }

CheckboxesFieldViewModel baseObject { get; set; }

}

ChildModel Class:

  public class ChildModel : ParentModel

{ public string CorticonEntityName { get; set; }

public string CorticonFieldName { get; set; }

CheckboxesFieldViewModel baseObject { get; set; }

public override object GetViewModel(object value, IMetaField metaField)
{
    object objBase=this.GetViewModel(value,metaField);
    retu (object)new ChildViewModel ()
    {
        objParent=objBase,
        CorticonEntityName = this.CorticonEntityName,
        CorticonFieldName = this.CorticonFieldName
    };
}}

How can reuse the Parent class GetViewModel() without setting the properties again.

asked 32 secs ago

برچسب: نویسنده: استخدام کار تاريخ: دوشنبه 11 مرداد 1395 ساعت: 12:49

صفحه بندی