WinMD形式で出力されるC#Metro DLLを作成する際に、パブリッククラスがありIdます。をオーバーライドしますがEquals、オーバーロードすることはできません==。
ただし、これと同じクラスがDLLの内部で使用されており、必然的にLINQを使用して、.Where(x => x.Id == Ids.House)明らかに機能しない書き込みを行っています。
考えられる解決策の1つは、を定義し、IdInternalそれをオーバーライド==して、を内部でラップできるようにすることIdです。
その解決策が整っていないと(いくつかのクラスで発生する必要があると思います)、コンパイル/ランタイムエラーを介して開発者にこのクラスに==を使用してはならないことを警告する方法はありますか?