我想在我正在编写的类中查询一些属性(又名注释)。
我可以用复杂的方式来做,但我想改用 Spring4D。
它有一个名为的单元Reflection
,看起来它有我需要的东西,但我不知道如何使用它。
我在网上看过,但没有关于如何使用本机的示例。
我发现:
THasAttributeFilter
看起来像这样:
THasAttributeFilter<T: TRttiObject> = class(TMemberSpecificationBase<T>)
private
fAttributeClass: TAttributeClass;
protected
function Accept(const member: T): Boolean; override;
public
constructor Create(attributeClass: TAttributeClass);
end;
太好了,所以我创建了一个像这样的过滤器:
type
Capability = (CanDoA, CanDoB);
TCapabilities = set of Capability;
[Capabilities(CanDoA)]
TMyClass = class(TParent)
strict private
class var fCapabilities: TCapabilities;
....
public
property Capabilities: TCapabilities read GetCapabilities;
end;
我可以像这样创建一个 HasAttributeFilter:
HasAttr:= THasAttributeFilter<TMyClass>.Create(CapabilitiesAttribute);
... ?? now what ??
我如何使用 Spring4D 来测试属性,而不必编写经典 RTTI 写作(例如根据 Nick Hodges 的书)所需的无数行?