///<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)); }
/// <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)); }