.NET 4 Methode Sicherheit Ausnahme, wenn pinvoking

Habe ich einige code, der pinvokes native win32. Da ich aufgerüstet .NET 4, der code gestartet, werfen MethodAccessException sagen:

Versuch, Sicherheit durch Transparenz 'Tek.Audio.Midi.MidiDevice.GetDevices()' aufrufen systemeigenen code über die Methode 'Tek.Native.Windows.Multimedia.midiInGetNumDevs()' ist fehlgeschlagen. Methoden müssen auf die Sicherheit Kritischer oder Sicherheit sicher-entscheidend für nativen code aufrufen.

Hier ist was Los:

  • Ausführbare assembly Program.Main Methodenaufrufe library1 public static Tek.Audio.Midi.MidiDevice.GetDevices()
  • Library1 ' s GetDevices() Anrufe library2 public static pinvoke Tek.Native.Windows.Multimedia.midiInGetNumDevs() (ja, schlechte Praxis, was auch immer)

Nur Sicherheits-bezogene Attribute für Klassen, Methoden und Baugruppen beteiligt sind AllowPartiallyTrustedCallers auf library1, und ich weiß auch nicht warum.

Es beschämt mich, zugeben, ich bin ziemlich unwissend über die Sicherheit in .NET. Was sollte ich tun, um zu verhindern, dass diese Ausnahme? Und während ich hier bin, jede gute Artikel zu get begann mich auf .NET-Sicherheit?

InformationsquelleAutor Trillian | 2010-07-15
Schreibe einen Kommentar