繁体   English   中英

如何在iTextSharp中使用反射取回值

[英]How to get back the value using reflection in iTextSharp

我要求用户选择动态生成的pdf大小。

为了填充iTextSharp支持的所有尺寸,我在下拉列表中列举了所有尺寸,如下所示:

      System.Reflection.FieldInfo[] fi = typeof(iTextSharp.text.PageSize).GetFields();
      DropDownList1.DataSource = fi;
      DropDownList1.DataBind();

到这里一切都还可以。 现在,当用户选择说字母大小时,我如何使用此信息来初始化像

var document = new Document(PageSize.LETTER);

目前,我正试图使它像这样,但它给编译类型错误。

PageSize getpsize()
 {
      System.Reflection.FieldInfo[] fi = typeof(iTextSharp.text.PageSize).GetFields();
      int si = DropDownList1.SelectedIndex;
      PageSize p = fi[si];
      return p;
 }

请帮忙,因为这是我第一次认真思考。

System.Reflection.FieldInfo[] fi = typeof(iTextSharp.text.PageSize).GetFields();

FieldInfo[]是字段元数据的数组,而不是对象本身。

因此,在获取必要的元数据之后,您需要获取如下所示的实际字段值:

FieldInfo field = fi[si];
PageSize size = (PageSize)field.GetValue(null);

GetValue(object)返回该字段的实际值。 由于这些字段是静态的,因此您将传递null,因为没有要查询的特定对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM