Бага с TypeAccessor
От: ili Россия  
Дата: 17.02.11 11:20
Оценка: 64 (1)
Где-то между ревизией 952 и текущей сломалась возможность пользовать тайпаксессор интерфейсов для вытаскивания полей объектов, унаследованных от этих интерфейсов

При том валится каким-то жутким исключением, то "System.EntryPointNotFoundException : Точка входа не найдена" то "ExecutionEngineException"

тест:
        [MapField("MasterId", "Master.MasterId")]
        public interface IMaster2
        {
            [Relation]
            Master2 Master
            {
                get;
                set;
            }
        }
        [TableName("Master")]
        public abstract class Master2
        {
            [PrimaryKey]
            public abstract int           MasterId  {get; set;}
            [Relation(Destination=typeof(Detail2))]
            public abstract List<Detail2> Details   {get; set;}
            public abstract string        Name      {get; set;}
        }

        [TableName("Detail")]
        public abstract class Detail2 : IMaster2
        {
            [PrimaryKey, MapField("Id")]
            public abstract int             DetailId   {get; set;}

            public abstract Master2 Master
            {
                get;
                set;
            }

        }


        [Test]
        public void InterfaceTest()
        {
            var ta = TypeAccessor<IMaster2>.Instance;
            var ta2 = TypeAccessor<Detail2>.Instance;
            var d2 = TypeAccessor<Detail2>.CreateInstance();
            
         
            var m = ta2["Master"].GetValue(d2); // OK
            Assert.IsNotNull(m);


            m = ta["Master"].GetValue(d2); // Exception 
            Assert.IsNotNull(m);
        }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.