Uso de Unity para inyectar objetos en la instancia de IValueConverter

Tengo una instancia de IValueConverter en un proyecto de Silverlight 5, que convierte datos personalizados en diferentes colores. Necesito leer los valores de color reales de una base de datos (ya que estos pueden ser editados por el usuario).

Como Silverlight usa llamadas asíncronas para cargar los datos a través de Entity Framework desde la base de datos, creé un repositorio simple, que contiene los valores de la base de datos.

La interfaz:

<code>public interface IConfigurationsRepository
{
    string this[string key] { get; }
}
</code>

La implementación:

<code>public class ConfigurationRepository : IConfigurationsRepository
{
    private readonly TdTerminalService _service = new TdTerminalService();

    public ConfigurationRepository()
    {
        ConfigurationParameters = new Dictionary<string, string>();
        _service.LoadConfigurations().Completed += (s, e) =>
            {
                var loadOperation = (LoadOperation<Configuration>) s;
                foreach (Configuration configuration in loadOperation.Entities)
                {
                    ConfigurationParameters[configuration.ParameterKey] = configuration.ParameterValue;
                }
            };
    }

    private IDictionary<string, string> ConfigurationParameters { get; set; }

    public string this[string key]
    {
        get
        {
            return ConfigurationParameters[key];
        }
    }
}
</code>

Ahora me gustaría usar Unity para inyectar esta instancia de mi repositorio en la instancia de IValueConverter ...

App.xaml.cs:

<code>private void RegisterTypes()
{
    _container = new UnityContainer();
    IConfigurationsRepository configurationsRepository = new ConfigurationRepository();
    _container.RegisterInstance<IConfigurationsRepository>(configurationsRepository);
}
</code>

IValueConverter:

<code>public class SomeValueToBrushConverter : IValueConverter
{
    [Dependency]
    private ConfigurationRepository ConfigurationRepository { get; set; }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
       switch ((SomeValue)value)
        {
            case SomeValue.Occupied:
                return new SolidColorBrush(ConfigurationRepository[OccupiedColor]);
            default:
                throw new ArgumentException();
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
</code>

El problema es que no obtengo el mismo Unity-Container en la instancia del convertidor (es decir, el repositorio no está registrado).

Respuestas a la pregunta(2)

Su respuesta a la pregunta