示例#1
0
        ///<summary>
        /// Creates a new domain context object
        ///</summary>
        ///<typeparam name="T">The type of domain context object to create</typeparam>
        ///<returns>The new object</returns>
        public T CreateObject <T>() where T : class
        {
            var prefix = Mappings.GetIdentifierPrefix(typeof(T));
            //var dataObject = String.IsNullOrEmpty(prefix)
            //                     ? _store.MakeDataObject()
            //                     : _store.MakeDataObject(prefix + Guid.NewGuid());
            var dataObject = _store.MakeNewDataObject(prefix);
            IEnumerable <string> typeIds = Mappings.MapTypeToUris(typeof(T));

            foreach (var typeId in typeIds)
            {
                if (!String.IsNullOrEmpty(typeId))
                {
                    var typeObject = _store.MakeDataObject(typeId);
                    dataObject.AddProperty(DataObject.TypeDataObject, typeObject);
                }
            }
            var bindType = GetImplType(typeof(T));

            return((T)Activator.CreateInstance(bindType, this, dataObject));
        }
示例#2
0
        /// <summary>
        /// Create a new dynamic object
        /// </summary>
        /// <param name="prefix">optional identity prefix</param>
        /// <returns>A new dynamic object</returns>
        public dynamic MakeNewObject(string prefix = null)
        {
            var obj = _store.MakeNewDataObject();

            return(new BrightstarDynamicObject(obj));
        }