我有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) 考虑以下示例:
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有大小限制和清理字符串的要求.