I have lots of classes reflecting my screen Repository from White/UIAutomation.
To use repository I need to create lots of classes that reflect screens of my application windows.

To create a repository I use the following method:

```
var repoReport = repository.Get<MyClassRepresentingWindow>("WindowTitle", 
InitializeOption.WithCache);

```

it passes a generic type which is a Class I prepared.

What I want to do is to create a Dictionary(stringClassName, string windowTitle) or any Map to pass to that method.
The problem is can't pass className like in Java ClassForName.

I tried `System.Activator` but without any success.

```
Object configObj = System.Activator.CreateInstance(c);
Type c = System.Type.GetType("Namespace.MyClassRepresentingWIndow");

var myClass = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("Namespace.MyClassRepresentingWIndow");

Type type = assembly.GetType("Namespace.MyClassRepresentingWIndow");
object obj = Activator.CreateInstance(type);

var repoReport = repository.Get<c>("WindowTitle", 
InitializeOption.WithCache);

var repoReport = repository.Get<c.Name>("WindowTitle", 
InitializeOption.WithCache);

```

**Update1**
Guys, I'm not sitting in front of the code but I'll try to make my question less complicate.

This is a method which I found in the White repository that I think I use:
<https://github.com/petmongrels/white/blob/itemsmap/Components/Repository/Source/ScreenRepository.cs>

```
public virtual T Get<T>(string title, InitializeOption option) where T : AppScreen
    {
        ClearClosedScreens();
        AppScreen screen;
        var repositoryCacheKey = new ScreenRepositoryCacheKey(title, typeof (T));
        if (!screenCache.TryGetValue(repositoryCacheKey, out screen))
        {
            Window window = applicationSession.Application.GetWindow(title, IdentifiedOption<T>(option));
            screen = GetScreen<T>(window);
            screenCache.Add(repositoryCacheKey, screen);
        }

        if (screen != null)
            sessionReport.Next(typeof (T));
        return (T) screen;
    }

```

As I remember VS displayed .Get as a .Get<"class" type>. I'm sorry I can't express myself better. Please have a patient with me because I'm not familiar with this terminology.

**Update2**

At the end I want to get something like this:

```
var repoReport1 = repository.Get<MyClassRepresentingWindow1>("WindowTitle", InitializeOption.WithCache);
var repoReport1 = repository.Get<MyClassRepresentingWindow2>("WindowTitle", InitializeOption.WithCache);
var repoReport1 = repository.Get<MyClassRepresentingWindow3>("WindowTitle", InitializeOption.WithCache);

```

And I have a code of `MyClassRepresentingWindow{1,2,3}`. I just don't know how to pass class name to Get method. On input I have a string name of this class. On output I want to deliver something that this method `.Get<T>` can get.
I hope you can understand me now.