Re: ObjectBinder - немного дополнительного функционал
От: albenik Россия  
Дата: 20.02.09 10:25
Оценка:
Отвечу сам себе: в пункте 2 есть хорошие такие подводные камни, по каким-то непонятным пока мне причинам в определенных случаях в рантайме получается так:

Дано:
public abstract Class1 : EditableObject<Class1>
{
    private Class3 _C3 = Class3.CreateInstance();
    public Class3 C3
    { 
        get
        {
            return _C3;
        } set
        {
            _C3 = value;
        }
    }
}
public abstarct Class2 : EditableObject<Class2>
{
   public string SomeProperty { get; set; }
}
public abstarct Class3 : EditableObject<Class3>
{
   public string SomeProperty { get; set; }
}

public abstract Class1Class2Link : EditableObject<Class1Class2Link>
{
    private Class1 _C1 = Class1.CreateInstance();
    public Class1 C1
    {
        get 
        {
            return _C1;
        }
        set
        {
            _C1 = value;
        }
    }
    private Class2 _C2 = Class2.CreateInstance();
    public Class2 C2
    {
        get 
        {
            return _C2;
        }
        set
        {
            _C2 = value;
        }
    }

    public SomeLinkProperty { get; set; }
}


В рантайме, не разобрался пока почему, происходит следующий вызов:
BLToolkitExtension.Class1$TypeAccessor.Accessor$C3.GetValue(object); // object.GetType() = typeof(Class1Class2Link)

И естественно генерится InvalidCastException.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.