using System; public abstract class ThingWithOrganizationId { public Guid OrganizationId; } public class Thing : ThingWithOrganizationId { } public abstract class BaseService { public abstract void Save (T newThing) where T : TConstraint; } public class DerivedService:BaseService { public override void Save(TThing newThing) { Console.WriteLine (newThing.OrganizationId); } static void Main () { } }