/// <summary> /// Create the pool object (and sets the value of the binding). /// </summary> /// <param name="installer">Context within which the pool is to be created.</param> /// <returns>Returns true if successful, otherwise false.</returns> protected internal override bool CreateGlobalObject(IDefinitionInstallerContext installer) { if (installer == null) { throw new ArgumentNullException(); } // 1. Get the binding to the global Symbol name = installer.Runtime.GetSymbol(this.Name.Value); PoolBinding binding = installer.GetLocalPoolBinding(name); // 2. Check consistency that we didn't mess up in the implementation. if (binding == null) { throw new InvalidOperationException("Should have found a binding, because CreateGlobalBinding() created it!"); } if (binding.Value != null) { throw new InvalidOperationException("Should be an empty binding, because CreateGlobalBinding() complained if one already existed!"); } // 3. Create the pool object. binding.SetValue(new Pool(installer.Runtime, name)); return(true); }