我正在研究从OutputFormatter
继承的类。
在我的WriteResponseBodyAsync
方法中,我接受了OutputFormatterWriteContext context
,并且需要调用一个以IEnumerable<T> objects
作为参数的方法。
我正在使用具有此类方法的第三方库-
public SerializedData Serialize<T>(IEnumerable<T> someObject){...}
我的WriteResponseBodyAsync方法是这样的-
public override Task WriteResponseBodyAsync(OutputFormatterWriteContext context)
{
// need to make a call like the below,
// but of course, this won't compile because context.Object is not an IEnumerable<T>.
var serializedData = ThirdParyLibrary.Serialize(context.Object);
return Task.FromResult(serializedData);
}
我不知道如何从context.Object
到IEnumberable<T> objects
。我尝试了context.Object.GetType()
和GetGenericTypeDefinition()
和MakeGenericType(..)
的一些变体,但是这些都没有帮助。
是否可以做类似的事情-
var myType = context.Object.GetType().GetGenericArguments()[0]; //this gets the type inside the enumerable I want to return.
IEnumerable<myType> typedObjects = (IEnumerable<myType>) context.Object;