小编Mic*_*ein的帖子

Dynamic vs Typed会产生奇怪的结果

我有SAP RPC OCX控件,我想使用它.在C#4下面的代码工作正常:

System.Type t = System.Type.GetTypeFromProgID("SAP.Functions", true);            
dynamic fc = System.Activator.CreateInstance(t, false);
dynamic connection = fc.Connection;
connection.System = "";
Run Code Online (Sandbox Code Playgroud)

以下代码不起作用(即使连接不为null)

System.Type t = System.Type.GetTypeFromProgID("SAP.Functions", true);            
dynamic fc = System.Activator.CreateInstance(t, false);
var connection = fc.Connection as SAPLogonCtrl.Connection
connection.System = "";
Run Code Online (Sandbox Code Playgroud)

抛出以下错误:"尝试读取或写入受保护的内存.这通常表示其他内存已损坏."

最奇怪的事实是:

System.Type t = System.Type.GetTypeFromProgID("SAP.Functions", true);            
dynamic fc = System.Activator.CreateInstance(t, false);
dynamic c1 = fc.Connection;
var c2 = fc.Connection as SAPLogonCtrl.Connection;
if (c1 == c2)
  c2.System = "";
Run Code Online (Sandbox Code Playgroud)

最后一行被执行并抛出相同的异常!用c1替换c2按预期工作...

我觉得我错过了一些微不足道的事情,但我完全失去了...请帮帮忙?

其他信息:改变自:

dynamic fc = System.Activator.CreateInstance(t, false);
Run Code Online (Sandbox Code Playgroud)

至:

var fc …
Run Code Online (Sandbox Code Playgroud)

c# interop

7
推荐指数
1
解决办法
881
查看次数

ADO.NET DataService:将参数传递给[WebInvoke]方法

考虑以下示例:

public class SomeBusinessLayerService : DataService<MyEntityContainer>
{
 [WebInvoke]
 void DoSomething(string someParam)
 {
 }
}
Run Code Online (Sandbox Code Playgroud)

我找不到关于如何将参数传递给函数的示例或任何帮助!使用WebClient(或使用fiddler goofinfg)我可以触发函数调用,但无论我尝试参数someParam总是为null更糟糕的是 - 如果我将类型更改为int - 我的所有尝试都会以下列错误结束:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code></code>
  <message xml:lang="en-US">Bad Request - Error in query syntax.</message>
</error>
Run Code Online (Sandbox Code Playgroud)

任何人都可以请求帮助我的POST内容的工作示例如何我可以调用它?

注意:这是DataService,而不是WCF服务.我可以使用相同的方法使用WCF服务,没有任何问题.

编辑:我也需要POST的例子,而不是在URI中嵌入参数,因为URI有大小限制和清理字符串的要求.

wcf-data-services

4
推荐指数
1
解决办法
6497
查看次数

标签 统计

c# ×1

interop ×1

wcf-data-services ×1