【发布时间】:2023-04-09 21:37:01
【问题描述】:
我有一个作为 ISomething 传递给我的对象。 我需要序列化对象但是我的序列化器需要一个具体类型的类型参数,即:
string xml = Utilities.Serialize<ConcreteType>(myObject);
基本上我想和这个人一样:Creating a generic object based on a Type variable
但是我不想创建对象的新实例,我想使用生成的类型作为我的泛型类的参数。
所以,简而言之,我的问题是如何创建一些变量来表示可以与这样的泛型类一起使用的某个对象的具体类型:
string xml = Utilities.Serialize<ConcreteType>(myObject);
ConcreteType 是我需要创建的。
【问题讨论】:
-
我不熟悉 .net 中的 Utilities.Serialize。您能否评论一下全名(所有命名空间)?
-
@CrazyCasta:没关系。 OP需要的是
Utilities.SomeMethod<someVariableContainingConcreteType>(myObject) -
这无关紧要,我只是以它为例。为了澄清,我可能想制作一个 List
,其中 T 是我的问题的具体类型。 -
所以他想调用一个由变量指定的泛型类型的方法?使用 ISerialize 似乎要容易得多。
-
为什么
Serialize()是通用的?似乎没有一个很好的理由。如果确实需要该类型,那么将Type作为普通参数的重载可能会更好。
标签: c#