internal override bool IsVisible(XamlMember member, XamlType rootObjectType)
 {
     if (member == null)
     {
         return false;
     }
     Type accessingType = null;
     if (this.AllowProtectedMembersOnRoot && (rootObjectType != null))
     {
         accessingType = rootObjectType.UnderlyingType;
     }
     if (member.IsWriteVisibleTo(this.LocalAssembly, accessingType))
     {
         return true;
     }
     if (!member.IsReadOnly && ((member.Type == null) || !member.Type.IsUsableAsReadOnly))
     {
         return false;
     }
     return member.IsReadVisibleTo(this.LocalAssembly, accessingType);
 }