/// <summary>
        /// Throws <see cref="NotSupportedException"/> if the <see cref="Uri.Scheme"/> does
        /// not match the <see cref="IUriReferenceProvider.UriScheme"/>.
        /// </summary>
        public static void ThrowIfNotSupportedUriScheme(this IUriReferenceProvider provider, Uri uri)
        {
            Guard.NotNull(() => provider, provider);
            Guard.NotNull(() => uri, uri);

            if (uri.Scheme != provider.UriScheme)
            {
                throw new NotSupportedException(string.Format(
                                                    CultureInfo.CurrentCulture,
                                                    Resources.UriProviderExtensions_WrongScheme,
                                                    provider.UriScheme));
            }
        }
Beispiel #2
0
        public Uri CreateUri <T>(T instance, string uriScheme = null)
            where T : class
        {
            Guard.NotNull(() => instance, instance);

            IUriReferenceProvider selectedProvider = GetReferenceProvider <T>(instance, uriScheme);

            if (selectedProvider == null)
            {
                throw new NotSupportedException();
            }

            return((Uri)selectedProvider.GetType().InvokeMember(@"CreateUri",
                                                                BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod, null, selectedProvider, new object[] { instance }));
        }
 public void Initialize()
 {
     this.manager  = new Mock <IExtensionManager>();
     this.provider = new VsixExtensionUriProvider(this.manager.Object, file => this.openFileAction(file));
 }
 public void Initialize()
 {
     this.manager = new Mock<IExtensionManager>();
     this.provider = new VsixExtensionUriProvider(this.manager.Object, file => this.openFileAction(file));
 }