namespace XFEExtension.NetCore.XFPManager;
///
/// XFE属性管理器
///
public class XFPManager
{
private List Properties { get; set; }
///
/// 通过索引器获取属性
///
///
///
public object? this[string name]
{
get
{
return (from property in Properties where property.Name == name select property.Property).FirstOrDefault();
}
set
{
foreach (var property in Properties.Where(property => property.Name == name))
{
property.Property = value;
}
}
}
///
/// 通过名称获取给定类型的属性
///
///
///
/// 属性值
public T? X(string name)
{
foreach (var item in Properties.Where(item => item.Name == name))
{
return (T?)item.Property;
}
return default;
}
///
/// 通过名称设置给定类型的属性
///
///
///
public void E(string name, object value)
{
foreach (var item in Properties.Where(item => item.Name == name))
{
item.Property = value;
}
}
///
/// XFE属性管理器
///
public XFPManager()
{
Properties = [];
}
///
/// XFE属性管理器
///
/// 属性名称和其值
public XFPManager(params object[] nameAndValue)
{
Properties = [];
for (var i = 0; i < nameAndValue.Length; i += 2)
{
Properties.Add(new XProperty { Name = nameAndValue[i].ToString()!, Property = nameAndValue[i + 1] });
}
}
}