public ByteQuantifiedSize GetSizeProperty(MapiPropertyDefinition property)
        {
            Unlimited <ByteQuantifiedSize> propertyValue = this.GetPropertyValue <Unlimited <ByteQuantifiedSize> >(property);

            if (propertyValue.IsUnlimited)
            {
                return(new ByteQuantifiedSize(0UL));
            }
            return(propertyValue.Value);
        }
        public virtual TPropertyValue GetPropertyValue <TPropertyValue>(MapiPropertyDefinition mapiPropertyDefinition)
        {
            PropValue value;

            if (!this.values.TryGetValue(mapiPropertyDefinition.PropertyTag, out value))
            {
                return(default(TPropertyValue));
            }
            return((TPropertyValue)((object)mapiPropertyDefinition.Extractor(value, mapiPropertyDefinition)));
        }