gpt4 book ai didi

c# - C#中通过属性获取修饰成员的信息

转载 作者:行者123 更新时间:2023-11-30 15:49:52 25 4
gpt4 key购买 nike

我需要知道是否有任何方式(或另一种不同的方法)让一个属性知道为他装饰了什么。例如:

class Cat
{
public Cat() { }

[MyAttribute]
public House House { get; set; }
}

MyAttribute 中,我必须对房屋对象进行一些预处理...

class MyAttribute : Attribute
{
public MyAttribute()
{
var ob = // Discover the decorated property, do some changes and set it again
}
}

我不知道这是否是更好的方法,也不知道它是否真的可以做到,

最佳答案

这不是属性的工作方式。它们只是添加到某些东西的编译时元数据。他们自己什么也做不了。在运行时,代码可以使用该元数据来执行操作。

更新:基本上,据我了解,您正试图完成两件事。首先是告诉存储库不要加载某些属性。属性可用于此目的,但存储库代码应该对实体类型使用反射,并首先查看它不应该加载的内容。第二件事是您希望在第一次调用时加载该属性。您需要在每次调用时检查它是否已经加载,并在第一次调用时加载它。这可以通过手动插入这样的代码或使用类似 PostSharp 的代码来实现。后处理代码并可以通过查看属性自动注入(inject)方法调用。可能这就是您首先要求的。

关于c# - C#中通过属性获取修饰成员的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1129083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com