public static void Dispose <T>(this ExtensionPoint <T> extensionPoint)
        {
            var disposable = extensionPoint.ExtendedValue as IDisposable;

            disposable.Maybe(d => d.Dispose());
        }
        public static IDisposable Using <T>(this ExtensionPoint <T> extensionPoint)
        {
            var disposable = extensionPoint.ExtendedValue as IDisposable;

            return(disposable ?? NullDisposable.Instance);
        }
 public static bool IsDefault <T>(this ExtensionPoint <T> extensionPoint)
 {
     return(Equals(extensionPoint.ExtendedValue, default(T)));
 }