Vì bị làm phiền trong .NET Reflection set private property, người ta có thể đặt thuộc tính với một người đặt riêng. Nhưng khi thuộc tính được định nghĩa trong một lớp cơ sở, System.ArgumentException được ném: "Không tìm thấy phương thức thuộc tính thiết lập".Phương thức thiết lập thuộc tính không được tìm thấy trong một loại có nguồn gốc
Một ví dụ có thể là:
using System;
class Test
{
public DateTime ModifiedOn { get; private set;}
}
class Derived : Test
{
}
static class Program
{
static void Main()
{
Derived p = new Derived();
typeof(Derived).GetProperty("ModifiedOn").SetValue(
p, DateTime.Today, null);
Console.WriteLine(p.ModifiedOn);
}
}
Có ai biết một cách để giải quyết tình trạng này?
Chỉnh sửa: Ví dụ được đưa ra là minh hoạ đơn giản về sự cố. Trong kịch bản thế giới thực, tôi không biết liệu thuộc tính được định nghĩa trong một lớp cơ sở hay được định nghĩa trong cơ sở của lớp cơ sở.
Điều này chắc chắn sẽ hiệu quả nếu loại cơ sở được biết. Vui lòng xem chỉnh sửa của tôi. – tafa