protected override DynamicMetaObject Resolve( Func<DynamicMetaObject, DynamicMetaObject> bindTarget )
{
// The modules are processed in reverse to preserve a LIFO ordering. This first module to successfully bind wins.
for ( int index = _Modules.Count - 1; index >= 0; index-- )
{
object module = _Modules[index];
DynamicMetaObject metaObject = CreateBoundDynamicMetaObject( bindTarget, module );
if ( BindingHasFailed( metaObject ) )
{
continue;
}
return metaObject;
}
return null;
}