我有一個外部庫,我正在使用,即Aspose.Email.dll(可在NuGet)。它有一個PageInfo
類。 轉到定義顯示Visual Studio中它下面:如何使用反射來設置此對象的屬性?
using System;
namespace Aspose.Email
{
public class PageInfo
{
protected PageInfo next;
public int AbsoluteOffset { get; }
public int ItemsPerPage { get; }
public bool LastPage { get; }
public virtual PageInfo NextPage { get; }
public int PageOffset { get; }
public int TotalCount { get; }
}
}
長話短說,我需要創建一個PageInfo對象。我如何使用Reflection創建一個並設置其屬性ItemsPerPage
?
我已經試過這樣:
var result = (PageInfo)FormatterServices.GetUninitializedObject(typeof(PageInfo));
typeof(PageInfo).GetProperty("ItemsPerPage", BindingFlags.Instance | BindingFlags.Public).SetValue(result, 1);
的問題是,SetValue
錯誤出與Property set method not found.
你在做什麼,你需要創建一個'PageInfo'?也許如果你問一個關於*「我怎樣才能不使用自己的PageInfo來實現X」的新問題?*你可能有比使用反射更好的解決方案。 –
我擔心有人會問。我正在編程一個抽象接口庫來整合我使用的兩個不同的郵件庫(這和Exchange庫)我試圖合併一種在兩者之間分頁數據的方法。不幸的是,這個IMAP庫的一個大問題是,你不能真正建立一個任意的分頁查詢,但是在你第一次打電話來獲取分頁數據之後,必須總是使用一個鏈接的分頁對象。這是因爲圖書館的性質以及它的API如何實施以致它變得有點痛苦。 – Alexandru