非托管代码可以修改方法参数吗?

时间:2017-04-18 15:22:54

标签: .net unmanaged

我有一个非常奇怪的问题。 在我的wcf服务器中,有一些类似的代码

public MethodAResponse MethodA(MethodARequest req)
{
  LogHelper.Info(JsonHelper.ToJson(req)) // log a
  var r=abc.GetStatus();
  LogHelper.Info(JsonHelper.ToJson(req)) // log b
  ....
}

log a是正常的,但log b为null。 “req”值已更改 我不知道是谁改变了局部变量。

abc.GetStatus()中有一些非托管代码,例如

[DllImport("F3API.dll", CallingConvention = CallingConvention.StdCall)]
public static extern long GetCRStatus(IntPtr handle, ref CRStatus status);

如果我不使用这些非托管代码,程序运行符合我的期望 比如

public Status GetStatus()
{
  return new Status();
}

谢谢。

0 个答案:

没有答案