如何根据对象的使用有条件地将对象属性保持为“必需”?

我有一个随处可见的对象。现在,我想根据使用对象的位置,有条件地使该对象的属性成为必需。

这是示例:

这是将在所有地方使用的对象,

public class Contact
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

现在我还有一个类,上面的对象被用作属性,

public class Registration
{
    public Contact ContactDetails { get; set; }
    public List<ChildContact> ChildContact { get; set; }
}

现在有一个“ ChildContact”类,其中“ Contact”类也用作属性,

public class ChildContact
{
    public Contact Contact { get; set; }
    public int NoOfStudents { get; set; }
}

因此,当在“注册”中使用“联系人”类时,应该需要FristName和LastName属性,而在“ ChildContact”中使用时,这些属性应该是可选的。

请帮助我完成此任务。

提前致谢。