this question cevabında, üzerinde bir Öznitelik tanımlanmış bir arabirimi uygulayan bir sınıfta Type.GetCustomAttributes(true)
kullanmayı denedim. GetCustomAttributes
'un, arabirimde tanımlanan özniteliği geri döndürmediğini keşfetmeye şaşırdım. Neden olmasın Miras zincirinin bir parçası değil mi?InNet, neden Type.GetCustomAttributes (true) çağrılırken döndürülen arabirimlerde açıklanan özellikler değildir?
örnek kod:
[Attr()]
public interface IInterface { }
public class DoesntOverrideAttr : IInterface { }
class Program
{
static void Main(string[] args)
{
foreach (var attr in typeof(DoesntOverrideAttr).GetCustomAttributes(true))
Console.WriteLine("DoesntOverrideAttr: " + attr.ToString());
}
}
[AttributeUsage(AttributeTargets.All, Inherited = true)]
public class Attr : Attribute
{
}
Çıkışlar: Hiçbir şey
Tamam, bu mantıklı. Buna izin vermenin, çok-mirasçı solucanların açılmasını nasıl sağlayacağını düşünmemiştim. İyi cevap! –
Teşekkürler! Daha fazla soru ile soruları yanıtlamayı seviyorum. :) – cdhowie