2015-11-20 128 views
0

我需要一些帮助,希望它是可行的。传递一个类作为变量C#

我想通过一个类作为C#中的变量。

这是我的代码,所以你可以看到什么,我试图做的:

object shClass; 
switch ((cbxType.SelectedItem as ComboBoxItem).Value) 
{ 
    case "articles": 
      shClass = ArticlesClass; 
      break; 
    case "topics": 
      shClass = TopicsClass; 
      break; 
} 
serializer.Deserialize<shClass>(response); 

此代码不能正常工作,这只是给你一个想法是什么,我需要。这可能吗?

我希望你能帮助我。谢谢。

+1

您无法通过模板参数通过变量传递类型。模板在编译时生成。根据您使用的序列化程序,您可能可以使用'value.GetType()'来反序列化该值。 –

+0

这就是我的想法。谢谢。 – caesar

+0

它可以完成http://stackoverflow.com/questions/232535/how-to-use-reflection-to-call-generic-method –

回答

0

为什么你需要把它放在开关外?您可以尝试将其放入内部

switch ((cbxType.SelectedItem as ComboBoxItem).Value) 
{ 
    case "articles": 
      serializer.Deserialize<ArticlesClass>(response); 
      break; 
    case "topics": 
      serializer.Deserialize<TopicsClass>(response); 
      break; 
} 
+0

只是想尝试一些不同的东西。您的解决方案是我的其他选择。 – caesar