private void ThrowWhenUnbound(string propertyName)
 {
     throw NoTargetBoundException.InvocationRequiresTarget(
               propertyName,
               $"{nameof(VirtualDesktopConfiguration)} has been unbound. Bind it to an {nameof(IVirtualDesktop)} using the {nameof(BindToTarget)} method.");
 }
 private void ThrowWhenDeserializing(string propertyName)
 {
     throw NoTargetBoundException.InvocationRequiresTarget(
               propertyName,
               $"After Xml deserialization is complete, call '{nameof(BindToTarget)}' to enable setter for '{propertyName}'.");
 }