Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
adding named service Resolve with parameters
  • Loading branch information
dansiegel committed Feb 9, 2019
1 parent 388d709 commit bc2de79
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 0 deletions.
2 changes: 2 additions & 0 deletions Source/Prism/Ioc/IContainerProvider.cs
Expand Up @@ -10,5 +10,7 @@ public interface IContainerProvider
object Resolve(Type type, params (Type Type, object Instance)[] parameters);

object Resolve(Type type, string name);

object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters);
}
}
5 changes: 5 additions & 0 deletions Source/Prism/Ioc/IContainerProviderExtensions.cs
Expand Up @@ -14,6 +14,11 @@ public static T Resolve<T>(this IContainerProvider provider, params (Type Type,
return (T)provider.Resolve(typeof(T), parameters);
}

public static T Resolve<T>(this IContainerProvider provider, string name, params (Type Type, object Instance)[] parameters)
{
return (T)provider.Resolve(typeof(T), name, parameters);
}

public static T Resolve<T>(this IContainerProvider provider, string name)
{
return (T)provider.Resolve(typeof(T), name);
Expand Down
Expand Up @@ -61,6 +61,11 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
return Instance.Resolve(type, args: parameters.Select(p => p.Instance).ToArray());
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
return Instance.Resolve(type, name, args: parameters.Select(p => p.Instance).ToArray());
}

public bool IsRegistered(Type type)
{
return Instance.IsRegistered(type);
Expand Down
Expand Up @@ -60,6 +60,12 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
return Instance.Resolve(type, overrides);
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
var overrides = parameters.Select(p => new DependencyOverride(p.Type, p.Instance)).ToArray();
return Instance.Resolve(type, name, overrides);
}

public bool IsRegistered(Type type)
{
return Instance.IsRegistered(type);
Expand Down
5 changes: 5 additions & 0 deletions Source/Wpf/Prism.DryIoc.Wpf/Ioc/DryIocContainerExtension.cs
Expand Up @@ -61,6 +61,11 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
return Instance.Resolve(type, args: parameters.Select(p => p.Instance).ToArray());
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
return Instance.Resolve(type, name, args: parameters.Select(p => p.Instance).ToArray());
}

public bool IsRegistered(Type type)
{
return Instance.IsRegistered(type);
Expand Down
6 changes: 6 additions & 0 deletions Source/Wpf/Prism.Ninject.Wpf/Ioc/NinjectContainerExtension.cs
Expand Up @@ -66,6 +66,12 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
return Instance.Get(type, overrides);
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
var overrides = parameters.Select(p => new TypeMatchingConstructorArgument(p.Type, (c, t) => p.Instance)).ToArray();
return Instance.Get(type, name, overrides);
}

public bool IsRegistered(Type type)
{
return IsRegistered(type);
Expand Down
6 changes: 6 additions & 0 deletions Source/Wpf/Prism.Unity.Wpf/Ioc/UnityContainerExtension.cs
Expand Up @@ -62,6 +62,12 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
return Instance.Resolve(type, overrides);
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
var overrides = parameters.Select(p => new DependencyOverride(p.Type, p.Instance)).ToArray();
return Instance.Resolve(type, name, overrides);
}

public bool IsRegistered(Type type)
{
return Instance.IsRegistered(type);
Expand Down
5 changes: 5 additions & 0 deletions Source/Wpf/Prism.Wpf.Tests/Mocks/MockContainerAdapter.cs
Expand Up @@ -78,5 +78,10 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
{
throw new NotImplementedException();
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
throw new NotImplementedException();
}
}
}
5 changes: 5 additions & 0 deletions Source/Xamarin/Prism.DryIoc.Forms/DryIocContainerExtension.cs
Expand Up @@ -61,6 +61,11 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
return Instance.Resolve(type, args: parameters.Select(p => p.Instance).ToArray());
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
return Instance.Resolve(type, name, args: parameters.Select(p => p.Instance).ToArray());
}

public bool IsRegistered(Type type)
{
return Instance.IsRegistered(type);
Expand Down
Expand Up @@ -108,5 +108,10 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
{
throw new NotImplementedException();
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
throw new NotImplementedException();
}
}
}
6 changes: 6 additions & 0 deletions Source/Xamarin/Prism.Unity.Forms/UnityContainerExtension.cs
Expand Up @@ -60,6 +60,12 @@ public object Resolve(Type type, params (Type Type, object Instance)[] parameter
return Instance.Resolve(type, overrides);
}

public object Resolve(Type type, string name, params (Type Type, object Instance)[] parameters)
{
var overrides = parameters.Select(p => new DependencyOverride(p.Type, p.Instance)).ToArray();
return Instance.Resolve(type, name, overrides);
}

public bool IsRegistered(Type type)
{
return Instance.IsRegistered(type);
Expand Down

0 comments on commit bc2de79

Please sign in to comment.