[
https://issues.apache.org/jira/browse/IBATISNET-283?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gilles Bayon closed IBATISNET-283.
----------------------------------
Resolution: Fixed
Fix Version/s: DataMapper 3.0
DataMapper 1.6.2
in SVN
> Result mappings should work with interfaces when QueryForObject is passed an
> existing object
> --------------------------------------------------------------------------------------------
>
> Key: IBATISNET-283
> URL: https://issues.apache.org/jira/browse/IBATISNET-283
> Project: iBatis for .NET
> Issue Type: Bug
> Components: DataMapper
> Affects Versions: DataMapper 1.6.1
> Reporter: Richard Banks
> Assignee: Gilles Bayon
> Fix For: DataMapper 1.6.2, DataMapper 3.0
>
>
> In the IBatisNet.DataMapper.DataExchange.DotNetObjectDataExchange class the
> method public override void SetData(ref object target, ResultProperty
> mapping, object dataBaseValue)
> does a check against types using this statement:
> if ((type != this._parameterClass) &&
> !type.IsSubclassOf(this._parameterClass))
> The problem here is that IsSubclassOf doesn't check for interface
> implementations. When _parameterClass is an interface you also need to
> check using
> type.GetInterfaces().Contains(this._parameterClass)
> This would then allow for result mappings to use interfaces, which is really
> useful when you are using an IoC container to instantiate the class being
> populated, for example:
> ISale sale = Container.Resolve<ISale>();
> ...
> Mapper.Instance().QueryForObject<ISale>("uspSelectSale", saleNumber, sale);
> Thanks
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.