Announcement

Collapse
No announcement yet.

Assembly

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Assembly

    Hallo

    Ich hätte ma ne Frage. Ist es möglich aus einer .Net Dll herauszulesen, ob
    sie das ComVisibility besitzt und welchen Status diese besitzt?

    Also es sollte dann wie folgt aussehen:

    Ich suche mir im meinem Programm die Dll heraus und das Programm analysiert diese dann.


    Danke

    Mfg Co3dr
    Zuletzt editiert von Co3dr; 02.12.2011, 17:12.

  • #2
    Die solltest du mit der Assembly.GetCustomAttributes Methode auslesen können.

    Comment


    • #3
      Nein leider ging das nicht, mit dieser Methode kann man ein Assembly das momentan benutzt wird auslesen sprich auf das Projekt bezogen.

      Comment


      • #4
        Doch geht natürlich.

        Du musst die konkrete Assembly mit z.B.Assembly.LoadFrom laden und an dem Assembly Objekt das du von dieser Methode erhältst kannst du dann GetCustomAttributes für diese Assembly aufrufen.

        Comment


        • #5
          Hey guten Morgen,

          danke werd ich gleich mal ausprbieren!!!

          Mfg

          Co3dr

          Comment


          • #6
            Hier mal mein Code:
            [highlight=vb.net]
            Dim oAssembly() As Object
            Dim iLength As Integer
            Dim oVisibleValue As Object
            Dim bVisbility As Boolean

            oAssembly =System.Reflection.Assembly.LoadFrom(psAssembly).G etCustomAttributes(True)
            iLength = oAssembly.Length
            iLength -= 1
            oVisibleValue = oAssembly.GetValue(length)
            If oVisibleValue.ToString="System.Runtime.InteropServ ices.ComVisibleAttribute" = True Then
            bVisbility = (oVisibleValue.GetType.IsVisible)
            MsgBox(bVisbility)
            End If
            [/highlight]

            Zuletzt editiert von gfoidl; 05.12.2011, 13:17. Reason: VB.net-Tags

            Comment


            • #7
              Wenn du die von mir verlinkte Überladung von GetCustomAttributes verwendest der man den gesuchten Attributtyp mitgegeben kann ersparst du dir die nachfolgende Prüferei.

              [Highlight=VB.Net]
              Dim bVisbility As Boolean
              Dim attributes() = CType(Assembly.LoadFrom(psAssembly).GetCustomAttri butes(GetType(ComVisibleAttribute), True), ComVisibleAttribute())
              If (attributes.Length > 0) Then
              bVisbility = attributes(0).Value
              MsgBox(bVisbility)
              End If[/Highlight]

              Ob Assembly.LoadFrom(psAssembly) auch wirklich ein gültige Assembly findet bzw. finden kann solltest ud trotzdem noch explizit testen.

              Comment

              Working...
              X