In Metalama, use an aspect or a fabric, and register a reference validator using the Metalama.Extensions.Validation.ReferenceValidationQueryExtensions.ValidateInboundReferences
method.
[AttributeUsage(AttributeTargets.Assembly|AttributeTargets.Module|AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Constructor|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Field|AttributeTargets.Event|AttributeTargets.Interface|AttributeTargets.Delegate, AllowMultiple = true)]
[MulticastAttributeUsage(MulticastTargets.AnyType|MulticastTargets.Field|MulticastTargets.Method|MulticastTargets.InstanceConstructor, TargetTypeAttributes = MulticastAttributes.Internal|MulticastAttributes.InternalOrProtected|MulticastAttributes.Public|MulticastAttributes.UserGenerated, TargetMemberAttributes = MulticastAttributes.Protected|MulticastAttributes.Internal|MulticastAttributes.InternalAndProtected|MulticastAttributes.InternalOrProtected|MulticastAttributes.Public)]
[Obsolete("In Metalama, use an aspect or a fabric, and register a reference validator using the <c>Metalama.Extensions.Validation.ReferenceValidationQueryExtensions.ValidateInboundReferences</c> method.", false)]
public abstract class ReferenceConstraint : ReferentialConstraint, IReferentialConstraint, IConstraint