Microsoft.Office.Interop.Excel - Reflection GetProperties

时间:2015-06-30 05:05:37

标签: c# excel interop getproperties

a我正在尝试使用反射来检索Microsoft.Office.Interop.Excel.Series对象的属性。代码执行时没有错误,但仅返回属性的部分列表(与对象浏览器中列出的... Series对象的属性进行比较)。查看...系列对象的运行时监视列表时,完整列表显示在"动态视图"下。我发现的文档指出这些是动态成员,无法进行编辑。是否可以使用反射来访问动态成员?

我在Office 2013 Professional Plus上使用Windows 8.1,VS 2013。我有很强的VBA背景,大约1年的C#经验。

public void LoadProperties(dynamic SourceObject, dynamic TargetObject)
{
  Type sourcetype = SourceObject.GetType();
  Type targettype = TargetObject.GetType();

  if(sourcetype.Equals(targettype))
  {
    PropertyInfo[] properties = typeof(Microsoft.Office.Interop.Excel.Series).GetProperties();
    foreach (PropertyInfo property in properties)
    {
      object propertyvalue = property.GetValue(SourceObject);
      sourcetype.GetProperty(property.Name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | 
                             BindingFlags.NonPublic ).SetValue(TargetObject,propertyvalue);
    }      
  }
}

0 个答案:

没有答案