首页 / 知识
关于c#:动态创建模板的通用类型
2023-04-15 15:08:00

Dynamically Create a generic type for template我正在使用ChannelFactory对WCF进行编程,该类需要一种类型才能调用CreateChannel方法。 例如:
就我而言,我正在做路由,所以我不知道我的通道工厂将使用哪种类型。 我可以解析消息标头以确定类型,但是我在那里碰到一堵砖墙,因为即使我有Type的实例,也无法在ChannelFactory期望泛型的地方传递它。 用非常简单的术语来重述此问题的另一种方式是,我正在尝试执行以下操作:
我可以在C#中利用这种方法吗? 您正在寻找的是MakeGenericType
因此,您要做的就是获取通用"模板"类的类型定义,然后使用运行时驱动类型来构建类型的特殊化。 您应该看一下Ayende的这篇文章:WCF,Mocking和IoC:天哪!底部附近的某个位置叫GetCreationDelegate的方法应该会有所帮助。它基本上是这样做的:
这是一个问题:在您的特定情况下,您是否真的需要创建具有确切合同类型的渠道? 由于您要进行布线,因此很有可能仅处理通用通道形状。例如,如果您要路由单向消息,则可以创建一个通道来发送消息,如下所示:
如果您需要发送到双向服务,只需使用IRequestChannel即可。 如果您要进行路由,则通常来说,处理通用的通道形状(与通用的通用服务合同到??外部)要容易得多,只需确保您发送的消息正确无误即可。标头和属性。 |
最新内容
相关内容
编程解析linux命令?
编程解析linux命令?,系统,标准,基础,设备,发行,电脑,工具,密码,名字,适当,如何学习linux命令之ls的使用ls Linux常用命令中,ls用于列出当前路径查看linux类型命令?
查看linux类型命令?,系统,信息,命令,状态,数据,数字,情况,地址,类型,文件,linux查看系统命令是什么1、linux怎么查看系统版本呢,下面就让我们来linux删除类型命令?
linux删除类型命令?,系统,档案,命令,文件,名称,环境,数据,不了,目录,文件夹,关于linux的删除命令命令格式:rm [选项] 文件… 命令功能:删除一个linux命令行图形编程?
linux命令行图形编程?,系统,不了,情况,密码,工具,地方,百度,管理,图形界面,命令,linux下启动图形化界面的命令是不是startx?当启动文件找不到linux编程执行命令?
linux编程执行命令?,电脑,系统,环境,命令,基础,发行,工具,代码,地址,名称,linux为脚本程序指定执行权的命令及参数是1、chmod u+x file,如果只查看linux库类型命令?
查看linux库类型命令?,系统,工作,信息,状态,电脑,命令,工具,代码,地址,发行,如何查看Linux上程序或进程用到的库查看程序依赖的动态库:readelflinux访问模板命令?
linux访问模板命令?,工作,地址,系统,信息,管理,命令,目录,发行,设备,文件,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令linux终端命令行编程?
linux终端命令行编程?,系统,工作,命令,终端,概念,时间,第一,代码,发行,地方,Linux下5个有趣的命令行技巧介绍我们可以使用history命令来查看曾linux网卡类型命令?
linux网卡类型命令?,网络,系统,地址,信息,设备,状态,服务,名称,名字,网卡,如何配置Linux网卡配置网卡地址:点击 网络(K) 按钮进行配置网络 选择linux编程调用命令?
linux编程调用命令?,系统,标准,管理,工作,基础知识,情况,环境,设备,基础,首页,linux下怎样用c语言调用shell命令可以通过system函数,调用shelllinux编程所需的命令?
linux编程所需的命令?,工作,地址,档案,系统,命令,管理,标准,信息,目录,文件,Linux必须学会的60个命令:文件处理1应用实例如果我们看到一个没有linux命令行编程乱码?
linux命令行编程乱码?,环境,统一,乱码,中文,状态,软件,数据,系统,字符集,文件,为什么我进入Linux的终端窗口时,man一条命令出来的都是乱码呢?