Tag: 动态

在C#中动态创建和公开SOAP服务及其WSDL(使用自定义TCP侦听器!)

我有一个用C#构建的自定义HTTP服务器,它接受REST服务请求并使用XML或JSON响应(取决于客户端需要什么)。 REST服务是在运行时从基于数据库的配置定义的,在输入参数和输出类型方面有很大差异,并且它在生产中运行良好。 但是,我想将SOAP访问添加到相同的服务,并使用适当的WSDL。 由于可用服务不是硬编码,这意味着: 从数据库中的方法定义发布在运行时生成的WSDL 解析传入的SOAP请求,将它们映射到这些定义,并确保请求在处理之前符合方法签名 处理响应后,创建符合WDSL的SOAP响应以返回结果 使用Visual Studio在设计时生成Web服务(和WSDL)的MS文档(和Google)文档,使用WebMethods,ASP.NET MVC等公开内容。这不是我正在寻找的,因为没有方法在设计时从中生成绑定的定义。 有没有人有任何想法(例如用于原始SOAP解析的工具包),以及从动态创建的方法签名等生成WSDL的想法? 知道如果不建造这样的东西怎么样? 我希望尽可能避免重新发明轮子。 PS:显然.NET框架中有标准化的东西,因为Visual Studio为你做了 – 任何想法如何在运行时在较低级别访问它?

Delegate.CreateDelegate与DynamicMethod vs Expression

关于使反思飞行和探索代表的问题 …… 如果我需要为动态加载类型的方法创建委托Func ,我可能会使用(1) Delegate.CreateDelegate (2) DynamicMethod (3) Expression树。 让我们说一组动态加载的类型/方法在应用程序启动时通过config反映一次,并在应用程序的整个生命周期中使用(启动性能不是问题,也不是内存),代理被缓存并分派到一个强烈的方式。 这些代理是同时访问的热路径。 您更喜欢哪种动态绑定方法?为什么?

.NET中的动态控件问题

动态控件的问题 大家好, 我想创建一些动态控件,并让它们在页面加载中保持其视图状态。 够容易吧? 我所要做的就是在每次加载页面时使用相同的ID重新创建控件。 但是,这是捕获 – 在我的PreRender事件中,我想要清除控件集合,然后使用新值重新创建动态控件。 造成这种情况的原因很复杂,我可能需要大约一页来解释我为什么要这样做。 因此,为了简洁起见,让我们假设我绝对必须这样做,并且没有别的办法。 在我的PreRender事件中重新创建控件后,问题出现了。 重新创建的控件永远不会绑定到视图状态,并且它们的值不会跨页面加载持续存在。 我不明白为什么会这样。 我已经在我的OnLoad事件中重新创建了控件。 当我这样做时,新创建的控件绑定到ViewState就好了,前提是我每次都使用相同的ID。 但是,当我尝试在PreRender事件中执行相同的操作时,它会失败。 无论如何,这是我的示例代码: namespace TestFramework.WebControls { public class ValueLinkButton : LinkButton { public string Value { get { return (string)ViewState[ID + “vlbValue”]; } set { ViewState[ID + “vlbValue”] = value; } } } public class TestControl : WebControl { protected override […]

在c#中用字符串变量初始化一个类?

是否可以通过字符串变量初始化类? 我有PHP代码。 我怎么在c#中这样做?

UPSERT进入具有动态表名的表

任何更好的UPSERT进入表的方法,提供: 数据以~1行/秒进行upsert 表名是DYNAMIC,使用传递给它的ObjectID参数生成 以下程序:“ORA-00942:表格或视图不存在” CREATE OR REPLACE PROCEDURE PROCEDURE “SPINSERTDATA” ( pObjectID IN RAW, pDateTime IN TIMESTAMP, pValue IN BINARY_DOUBLE, ) AS BEGIN Declare vQueryInsert VARCHAR2(1000); vQueryUpdate VARCHAR2(1000); vTableName VARCHAR2(30); Begin vTableName := FGETTABLENAME(POBJECTID => pObjectID); vQueryUpdate := ‘UPDATE ‘ || vTableName || ‘ SET “VALUE” = :1’; vQueryInsert := ‘INSERT INTO ‘ || vTableName […]

如何在C#4中创建动态类?

我想在C#中创建一个对象,让它根据不存在的方法的名称做有趣的事情。 在ruby中,这是method_missing。 在Perl中,这是AUTOLOAD。 我似乎无法在C#中找到进入System.Dynamic的方法。

将类型传递给generics方法(嵌套generics)

如果我没有TRootEntity ,我怎么能调用以下方法,但只有它的TYPE : public void Class(Action<IClassMapper> customizeAction) where TRootEntity : class; 最终目标是运行以下代码 var mapper = new ModelMapper(); mapper.Class(ca => { ca.Id(x => x.Id, map => { map.Column(“MyClassId”); map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); }); ca.Property(x => x.Something, map => map.Length(150)); }); 它用于创建动态NHibernate HBM 。 这里有更多信息 相关问题请参见此处和此处 。

C#动态加载/卸载DLL Redux(当然使用AppDomain)

我已经阅读了Stack Overflow上这个问题的许多不同版本,以及3个不同Google搜索教程的首页上的每个蓝色链接,以及MSDN(除了执行程序集之外还有点浅薄) 。 我只能想到我努力让Tao作为一个好的测试用例,但请相信我,我尝试过一个简单的字符串返回,一个double,一个带参数的函数。 无论我的问题是什么,都不是道。 基本上我想在GLPlugin命名空间中创建Draw类的testLibraryDomain.CreateInstance() 。 if( usePlugin ) { AppDomain testLibraryDomain = AppDomain.CreateDomain( “TestGLDomain2” ); //What the heck goes here so that I can simply call //the default constructor and maybe a function or two? AppDomain.Unload( testLibraryDomain ); } Gl.glBegin( Gl.GL_TRIANGLES ); 我知道一个事实: namespace GLPlugin { public class DrawingControl : MarshalByRefObject { public […]

C#将动态字符串转换为现有类

在Windows应用程序中,使用C#,我有一个报告模块,它将依赖于类来填充报告。 但是会有很多报告,我不想为每个报告编写代码。 流程将如下:在报告编辑器中,将为报告分配一个类(即“应用程序”)作为字符串。 当用户选择要运行的报表时,代码将从SQL查询中获取数据。 代码将获取数据并找出将数据放入哪个类。 然后报告将使用该类并使用该类中的数据填充报告。 这是我的困境,我如何使代码动态化,以便代码将指定的类转换为适当的类对象? 示例: gVar = Report; (gVar.ReportClass)oClass = new gVar.ReportClass;

动态关键字问题

请告诉我在哪个版本中引入了动态关键字? 我在VS2010中发现了奇怪的行为。 我将目标框架设置为3.5。 但是没有编译器错误。 只需将目标框架的控制台应用程序创建到.net 3.5并使用dynamic关键字。