首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#到Powershell InvokeMember

C#到Powershell InvokeMember
EN

Stack Overflow用户
提问于 2020-06-10 20:59:59
回答 2查看 114关注 0票数 0

如何用Powershell编写以下C#代码?

代码语言:javascript
复制
m_object.GetType().InvokeMember(sPropertyName, m_flgGetProperty, null, m_object, null)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-10 21:10:34

在C#中所做的几乎完全一样。例如,您将通过以下方式从字符串中获取Length属性(如果出于某种原因,您必须这样做):

代码语言:javascript
复制
$m_object = "some string"
$sPropertyName = "Length"
$m_flgGetProperty = [Reflection.BindingFlags] "DeclaredOnly, Public, NonPublic, Instance, GetProperty"

$m_object.GetType().InvokeMember($sPropertyName, $m_flgGetProperty, $null, $m_object, $null)

与C#的区别:

所有的$.

  • Refer变量都以[].

  • To开始,类型具有完整的名称空间(尽管不需要System ),在[].

  • To中将枚举标志合并成一个值(就像对于BindingFlags),您可以像上面这样使用逗号分隔的列表,而不是|。PowerShell将字符串转换为您的枚举值.
票数 3
EN

Stack Overflow用户

发布于 2020-06-10 22:01:57

PowerShell本机允许在一定程度上进行动态调用,因此假设类型成员是公共的,那么它可能很简单:

代码语言:javascript
复制
$PropertyName = 'MemberName'
$object.$PropertyName
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62313040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档