[
https://issues.apache.org/jira/browse/IBATISNET-210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gilles Bayon closed IBATISNET-210.
----------------------------------
Resolution: Fixed
Fix Version/s: DataMapper 1.6.1
Assignee: Gilles Bayon
In SVN
> Finding properties on interfaces which "inherites" other interfaces
> -------------------------------------------------------------------
>
> Key: IBATISNET-210
> URL: https://issues.apache.org/jira/browse/IBATISNET-210
> Project: iBatis for .NET
> Issue Type: Bug
> Components: DataMapper
> Affects Versions: DataAccess 1.9, DataMapper 1.6
> Environment: Visual Studio 2005. .NET 2.0, Windows
> Reporter: Henrik Uffe Jensen
> Assigned To: Gilles Bayon
> Fix For: DataMapper 1.6.1
>
>
> Here is the scenario explained. Don't know if this is really a bug or
> something that iBatis is just not supposed to support
> First of all lets sketch some simple interfaces and domain classes
> public interface IBaseDomain
> {
> Guid Id { get; set; }
> }
> public interface IAddress : IBaseDomain
> {
> string Streetname { get; set; }
> }
> public interface IUser : IBaseDomain
> {
> IAddress Address { get; set; }
> }
> public class BaseDomain : IBaseDomain
> {
> public Guid Id
> {
> get { ......... }
> set { ......... }
> }
> }
> public class Address : IBaseDomain, IAddress
> {
> public string Streetname
> {
> get { ......... }
> set { ......... }
> }
> }
> public class User : IBaseDomain, IUser
> {
> public IAddress Address
> {
> get { .......... }
> set { .......... }
> }
> }
> Then in a SqlMap we have some statements etc. and a resultmap based on the
> 'User' class which uses 'Address.Id' and 'Address.Streetname' in the
> propertynames.... and then problems start because iBatis can only find
> 'Streetname' property on IAddress and not property 'Id'. The reason is that
> 'Id' exists in 'IBaseDomain' interface and not directly in the 'IAddress'
> interface.
> In IBatisNet.Common.Utilities.Objects.ReflectionInfo and
> IBatisNet.Common.Utilities.Objects.Members.DelegatePropertyGetAccessor (only
> two places I got problems but maybe more exists) you will get en exception
> saying that "Property 'Id' on..... can not be found"
> What I did to get going was to do some minor corrections in the mentioned
> classes where I check if type is an interface and in that case I don't only
> check for available properties on the type itself, but also use
> GetInterfaces() on the type to enumerate "inherited" interfaces and check for
> the property on these types.
> I have found no sideeffects on these little hacks but I'm also only using a
> minor part of the framework
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.