Bri*_*Kay 3 c# vb.net generics fluent-interface dynamic
是否有可能创建一个返回未指定类型的泛型的函数,像这样?
Public Function Create(ByVal type As Type) As DeserializationHelper(Of )
Dim DynamicHelper = GetType(DeserializationHelper(Of )).MakeGenericType(type)
Return Activator.CreateInstance(DynamicHelper)
End Function
Run Code Online (Sandbox Code Playgroud)
除了强烈输入返回值之外,一切都在这里工作.我可以将它作为对象,非泛型接口或非泛型基类返回,但我正在尝试制作一个非常简洁流畅的样式API.
我正在尝试创建这样的语法:
Dim Loader As New XLoader(parentContainer, Map)
Dim MyCreature As Creature = Loader.Create(GetType(Creature)).From(xml.<Creature>)
Run Code Online (Sandbox Code Playgroud)
...是的,我知道有内置的xml序列化程序 - 我希望它们能为我工作,但我需要更多的控制权.;)
如果我将这部分移动到另一个项目并用C#编写(然后从VB.NET项目中使用它),C#的Dynamic关键字会帮助我吗?
谢谢.:)
不是专家,VB但希望这会有所帮助:
Public Function Create(Of TResult)() As DeserializationHelper(Of TResult)
Return Activator.CreateInstance(Of DeserializationHelper(Of TResult))()
End Function
Run Code Online (Sandbox Code Playgroud)