public Property GetProperty(string name, string category)
        {
            string TextExtension    = ".txt";
            string BinaryExtensions = ".bin";

            if (Path.HasExtension(name))
            {
                TextExtension    = "";
                BinaryExtensions = "";
            }

            var TextHandler  = category.CombinePath(name + TextExtension);
            var BytesHandler = category.CombinePath(name + BinaryExtensions);

            var h = new Property.Handlers
            {
                get_TextHandler = () => this.Content[TextHandler].Text,
                set_TextHandler = value => this.Content[TextHandler].Text = value,

                get_BytesHandler = () => this.Content[BytesHandler].Bytes,
                set_BytesHandler = value => this.Content[BytesHandler].Bytes = value,

                GetSubProperty =
                    n => GetProperty(n, Path.Combine(category, name))
            };

            return(new Property(h, name, category));
        }
		public Property GetProperty(string name, string category)
		{

			string TextExtension = ".txt";
			string BinaryExtensions = ".bin";

			if (Path.HasExtension(name))
			{
				TextExtension = "";
				BinaryExtensions = "";
			}

			var TextHandler = category.CombinePath(name + TextExtension);
			var BytesHandler = category.CombinePath(name + BinaryExtensions);

			var h = new Property.Handlers
			{
				get_TextHandler = () => this.Content[TextHandler].Text,
				set_TextHandler = value => this.Content[TextHandler].Text = value,

				get_BytesHandler = () => this.Content[BytesHandler].Bytes,
				set_BytesHandler = value => this.Content[BytesHandler].Bytes = value,

				GetSubProperty =
					n => GetProperty(n, Path.Combine(category, name))

			};

			return new Property(h, name, category);
		}