WMI プロバイダーのすべてを難読化するのは論理的ではないように思えます。メタデータ (メソッド、パラメーター、クラスの名前など) は、WMI プロバイダーが外部からどのように見えるかを記述するためです。WMI プロバイダーのユーザーに ak という名前の WMI クラスを持たせたいですか? そして、a? という名前の WMI メソッド。GetInstances メソッドを備えた MySomethingProvider が必要です。
しかし、難読化された名前にユーザーが対処する必要があるとしても、この難読化はマネージド WMI プロバイダーのメタデータがどのように見えるべきかという点ではうまくいかないと思います。
たとえば、ここでは ManagementName 属性が ID を指していますが、これを難読化すると、ID に別の名前が付けられることは間違いありません。だから似合わない
[ManagementBind]
static public WIN32ServiceHost GetInstance([ManagementName("ID")] int processId)
{
}
[ManagementKey]
public int ID
難読化後、ManagementName の文字列は ID のままですが、プロパティ ID は A と呼ばれるようになりました。
[ManagementBind]
static public WIN32ServiceHost a([ManagementName("ID")] int a)
{
}
[ManagementKey]
public int A
したがって、難読化をまったく行わないか、公開されていない部分または WMI API の一部のみを難読化してください。