나는 외부 라이브러리, 즉 , Aspose.Email.dll (NuGet에서 사용 가능)을 사용하고 있습니다. 그것은 PageInfo
클래스입니다.리플렉션을 사용하여이 객체의 속성을 설정하려면 어떻게해야합니까?
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);
문제는 Property set method not found.
'PageInfo'를 작성해야하는 이유는 무엇입니까? 아마도 * "내 PageInfo를 크래킹하지 않고 어떻게 X를 할 수 있습니까?"*에 대한 새로운 질문을 던지십시오. * 리플렉션을 사용하는 것보다 더 좋은 해결책이있을 수 있습니다. –
누군가 묻을 까봐 두려웠습니다. 나는 추상적 인 인터페이스 라이브러리를 프로그래밍하여 두 개의 서로 다른 메일 라이브러리를 통합하고있다.이 라이브러리와 Exchange 라이브러리를 함께 사용하여이 둘 사이에 페이징 데이터를 통합하려고한다. 불행히도이 IMAP 라이브러리의 큰 경고는 실제로 임의의 페이징 쿼리를 작성할 수는 없지만 먼저 페이징 된 데이터를 얻기 위해 호출 한 후에 항상 링크 된 페이징 개체를 사용해야한다는 것입니다. 라이브러리의 본질과 API가 구현되어서 약간의 고통이됩니다. – Alexandru