/// <summary>
            /// Get Asset's property descriptors
            /// </summary>
            private void GetAssetProperties()
            {
                if (null == m_propertyDescriptors)
                {
                    m_propertyDescriptors = new PropertyDescriptorCollection(new AssetPropertyPropertyDescriptor[0]);
                }
                else
                {
                    return;
                }

                //For each AssetProperty in Asset, create an AssetPropertyPropertyDescriptor.
                //It means that each AssetProperty will be a property of Asset
                for (int index = 0; index < m_asset.Size; index++)
                {
                    //AssetProperty assetProperty = m_asset[index]; // 2018
                    AssetProperty assetProperty = m_asset.Get(index); // 2019

                    if (null != assetProperty)
                    {
                        AssetPropertyPropertyDescriptor assetPropertyPropertyDescriptor = new AssetPropertyPropertyDescriptor(assetProperty);
                        m_propertyDescriptors.Add(assetPropertyPropertyDescriptor);
                    }
                }
            }
            /// <summary>
            /// Compares this to another object to see if they are equivalent
            /// </summary>
            /// <param name="obj">The object to compare to this AssetPropertyPropertyDescriptor. </param>
            /// <returns></returns>
            public override bool Equals(object obj)
            {
                AssetPropertyPropertyDescriptor other = obj as AssetPropertyPropertyDescriptor;

                return(other != null && other.AssetProperty.Equals(m_assetProperty));
            }