Equals shouldn't throw on a type mismatch, it should instead return false. Do this:

```c#
    AddonSearchOptions rhs = obj as AddonSearchOptions;
    if (obj == null) { return false; }
```