【发布时间】:2019-01-19 16:44:57
【问题描述】:
鉴于dynamicobject,是否有办法在null 值移除的表达式中获取默认值?代码 sn-p 可能如下所示:
[Serializable]
public class Dynamico : DynamicObject, IDictionary<string, object>, ICloneable, INotifyPropertyChanged, IXmlSerializable
{
private readonly IDictionary<string, object> _values = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
public object this[string key]
{
get { return GetProperty(key); }
set
{
_values[key] = value;
OnPropertyChanged(key);
}
}
public object GetProperty(string propertyName)
{
if (_values.ContainsKey(propertyName) == true)
{
return _values[propertyName];
}
return RequestProperty(propertyName);
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = GetProperty(binder.Name);
**//To do: to get the default value of null value removal expression**
return true;
}
public override bool TryInvoke(InvokeBinder binder, object[] args, out object result)
{
return base.TryInvoke(binder, args, out result);
}
......
}
我可以使用下面的代码来使用class:
dynamic obj = new Dynamico();
.......
var t = obj.DemoProp ?? "Default value is assigned";
我的问题是在Dynamicclass定义的TryGetMember方法中,如何获取默认值,即。 “分配了默认值”?解决方法可以使用表达式,有小伙伴可以推荐吗?
【问题讨论】:
标签: c# expression