示例#1
0
        private BindableObjectClass CreateBindableObjectClass(Type type)
        {
            if (!IsBindableObjectImplementation(type))
            {
                if (type.ContainsGenericParameters)
                {
                    throw new ArgumentException(
                              string.Format(
                                  "The type '{0}' is not a bindable object implementation. Open generic types are not supported.",
                                  type.FullName),
                              "type");
                }

                throw new ArgumentException(
                          string.Format(
                              "The type '{0}' is not a bindable object implementation. It must either have a mixin derived from BindableObjectMixinBase<T> applied "
                              + "or implement the IBusinessObject interface and apply the BindableObjectBaseClassAttribute.",
                              type.FullName),
                          "type");
            }

            IClassReflector classReflector = _metadataFactory.CreateClassReflector(type, this);

            Assertion.IsNotNull(classReflector, "The IMetadataFactory.CreateClassReflector method evaluated and returned null.");

            return(classReflector.GetMetadata());
        }
        public void CreateClassReflector()
        {
            BindableObjectProvider provider       = new BindableObjectProvider();
            IClassReflector        classReflector = BindableObjectMetadataFactory.Create().CreateClassReflector(typeof(TestClass), provider);

            Assert.That(classReflector.TargetType, Is.SameAs(typeof(TestClass)));
            Assert.That(classReflector.BusinessObjectProvider, Is.SameAs(provider));
        }
 public void SetUp()
 {
     _mocks = new MockRepository();
     _accessTypeReflectorMock   = _mocks.StrictMock <IAccessTypeReflector> ();
     _classReflectorMock        = _mocks.StrictMock <IClassReflector> ();
     _abstractRoleReflectorMock = _mocks.StrictMock <IAbstractRoleReflector> ();
     _assemblyReflector         = new AssemblyReflector(_accessTypeReflectorMock, _classReflectorMock, _abstractRoleReflectorMock);
     _cache = new MetadataCache();
 }
        public AssemblyReflector(IAccessTypeReflector accessTypeReflector, IClassReflector classReflector, IAbstractRoleReflector abstractRoleReflector)
        {
            ArgumentUtility.CheckNotNull("accessTypeReflector", accessTypeReflector);
            ArgumentUtility.CheckNotNull("classReflector", classReflector);
            ArgumentUtility.CheckNotNull("abstractRoleReflector", abstractRoleReflector);

            _accessTypeReflector   = accessTypeReflector;
            _classReflector        = classReflector;
            _abstractRoleReflector = abstractRoleReflector;
        }