I'm trying to refactor some code that looks like this (there are several other cases).

```
switch (input) {
    case "1":
         _service.getWCFStuff1Completed += new EventHandler<getWCFStuff1CompletedEventArgs>(method1);
         _service.getWCFStuff1Async(strSomething);
    case "2":
         _service.getWCFStuff2Completed += new EventHandler<getWCFStuff2CompletedEventArgs>(method2);
         _service.getWCFStuff2Async(strSomething);
    [etc...]
}

```

I'd like to change the code to something like this but I don't see any way to get a templated type (i.e. the EventArgs event handler) into an Action.

```
var Map = new Dictionary<string, Action<???, string>> {
    { "1", method1},
    { "2", method2}
};

```

Is there any way to do this, or another approach in which I can use a Dictionary and be able to write code something like:

```
Map[input](something-with-eventargs, strSomething);

```