Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加变量监视显示字段,但编译不喜欢该字段?_C#_Sap Erp_Sap Dotnet Connector - Fatal编程技术网

C# 添加变量监视显示字段,但编译不喜欢该字段?

C# 添加变量监视显示字段,但编译不喜欢该字段?,c#,sap-erp,sap-dotnet-connector,C#,Sap Erp,Sap Dotnet Connector,我必须从C#中的ERP系统(SAP)中提取一些数据。 没有详细介绍SAP(我相信你不会想知道的) 我正在从C#内部调用一些远程函数,它正在工作,但我遇到了一个奇怪的问题。我必须从C#调用SAP中的一个函数称为BAPI_USER_GET_DETAIL 所以我在C中这样做: SAP需要所有这些字段,因此这是非常正常的代码。我需要在此函数中拉出一个参数。也就是说,参数company,在我执行这个过程之后,我应该在company字段中有一个值,手表显示在这里: 我遇到的问题是注意到_Company有我

我必须从C#中的ERP系统(SAP)中提取一些数据。 没有详细介绍SAP(我相信你不会想知道的)

我正在从C#内部调用一些远程函数,它正在工作,但我遇到了一个奇怪的问题。我必须从C#调用SAP中的一个函数称为BAPI_USER_GET_DETAIL

所以我在C中这样做:

SAP需要所有这些字段,因此这是非常正常的代码。我需要在此函数中拉出一个
参数。也就是说,参数
company
,在我执行这个过程之后,我应该在
company
字段中有一个值,手表显示在这里:

我遇到的问题是注意到_Company有我需要的值,但我不能做
companyName._Company
(visual studio不喜欢这样)。但是,如果我在手表上按上图所示操作,它会正确显示。它给了我公司的名字。那么,手表是如何正确显示数值的呢。我一定是做了一些简单的C#错误的事情

编辑
Err看起来像是由于SAP中的保护级别而导致的某种错误。我想知道如何公开此…从我所看到的最可能的解释是,\u Company
是一个私有字段。这就是为什么不能直接从代码中访问它。监视窗口使用反射(或类似技术)获取所有成员,包括私有和受保护的成员

编辑:
如果SAP将其私有化,可能有一个很好的理由。但是如果你想从中挑选出一个值,你可以试试这样的方法

companyName.GetType().GetField("_Company", BindingFlags.NonPublic).GetValue(companyName);

据我所知,最有可能的解释是,\ u Company是一个私人领域。这就是为什么不能直接从代码中访问它。监视窗口使用反射(或类似技术)获取所有成员,包括私有和受保护的成员

编辑:
如果SAP将其私有化,可能有一个很好的理由。但是如果你想从中挑选出一个值,你可以试试这样的方法

companyName.GetType().GetField("_Company", BindingFlags.NonPublic).GetValue(companyName);

companyName类是什么样子的?你能显示类定义吗?看起来_Company是一个私有成员companyName类是什么样子的?你能显示类定义吗?看起来,\ u Company是一个私有成员。问题是如果SAP将其定义为私有的,我如何从.net中提取它…我无法更改SAP标准代码。@JonH我用一点反射代码更新了我的答案以获取值。@Albin Sunnabo-抛出一个异常:类型为object reference未设置为对象实例。看起来像是NULLReferenceException。我想知道为什么常规属性公司声明:“Error cannot Acquisite value”,而私有成员却拥有该值..这毫无意义。@john,我忘了
,BindingFlags.NonPublic
Ya问题是,如果SAP将其定义为私有,我将如何从.net中提取它……我无法更改SAP标准代码。@JonH我用一点反射代码更新了我的答案,以获取值。@Albin Sunnabo-抛出一个异常:对象引用类型未设置为对象实例。看起来像是NULLReferenceException。我想知道为什么常规属性公司声明:“Error cannot Acquisite value”,而私有成员却有值..这毫无意义。@JonH,我忘记了BindingFlags.NonPublic