と呼ばれるcustomAttributeがあることを確認してくださいResponseAttributes
。インターフェイスといくつかの具体的なクラスを宣言しました{ Question 1, Question2, Question3 }
[AttributeUsage(AttributeTargets.Property)]
public class ResponseAttribute : Attribute { }
public interface IQuestion { }
public class Question1 : IQuestion
{
[Response]
public string Response { get; set; }
public Question1() { Response = "2+1"; }
}
public class Question2 : IQuestion
{
[Response]
public decimal Response { get; set; }
public Question2() { Response = 5; }
}
public class Question3 : IQuestion
{
[Response]
public string Response { get; set; }
public Question3() { Response = "2+1"; }
}
今、私がやろうとしているのは、その属性を含むクラスが別のクラスと等しいことを確認する方法です。
つまり:
List<IQuestion> questions = new List<IQuestion>()
{
new Question1(), new Question2()
};
Question3 question3 = new Question3();
foreach (var question in questions)
{
// how to verify this condition:
// if (customAttribute from question3 is equals to customAttribute fromquestion)
// of course the question3 is equals to 1
}
できる限り、それらは異なるタイプであり、それが私がとして設定した理由ResponseAttribute
です。