在使用后期绑定针对 CRM SDK 进行编码时,使用 GetAttributeValue 方法访问属性与直接在 Entity 对象上访问属性有什么区别?
我对 .NET 和 c# 还是很陌生,所以如果这是一个简单的语言/平台理解问题,那么很抱歉,但也许这就是为什么我找不到太多差异的原因。
在使用后期绑定针对 CRM SDK 进行编码时,使用 GetAttributeValue 方法访问属性与直接在 Entity 对象上访问属性有什么区别?
我对 .NET 和 c# 还是很陌生,所以如果这是一个简单的语言/平台理解问题,那么很抱歉,但也许这就是为什么我找不到太多差异的原因。
entity["myattributename"]
如果您尝试访问不在实体的属性集合中的属性,将引发异常。它还将它作为对象返回。
entity.GetAttributeValue<T>
如果找不到,将返回该类型的默认值,如果它不在实体的属性集合中,则不会抛出异常。
将entity.GetAttributeValue<T>
返回一个可用于 LINQ 表达式的 IEnumerable 对象。这可以大大加快开发时间并减少代码逻辑行数。基于达里尔的回应(这里有很好的解释:) 。