Feedback

C# - Prüfen, ob Teil des .NET Frameworks

Veröffentlicht von am 21.10.2009
(2 Bewertungen)
Prüft, ob ein Typ ein Teil des .NET Frameworks ist oder nicht.
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Entwickler - Kompakt

Nach Teilnahme an dieser Schulung kennen Sie alle wesentlichen Funktionen des TFS für Entwickler. Sie setzen Software-Entwicklung mit dem Visual Studio Team Foundation Server erfolgreich um.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

using System;
using System.Collections.Generic;

public static class DotNetTools
{
    /// <summary>
    /// Checks if a type is part of the Microsoft .NET framework
    /// </summary>
    /// <param name="type">Type</param>
    /// <returns>Is part of the .NET framework (true) or not (false)</returns>
    public static bool IsDotNetType(Type type)
    {
        if (null == type)
        {
            throw new ArgumentNullException("type");
        }

        // prepare list of known .NET-Assemblies
        List<Assembly> asms = new List<Assembly>();
        // System
        asms.Add(Assembly.GetAssembly(typeof(object)));
        // System.Data
        asms.Add(Assembly.GetAssembly(typeof(System.Data.IDbConnection)));
        // System.Drawing
        asms.Add(Assembly.GetAssembly(typeof(System.Drawing.Size)));
        // System.Text.RegularExpressions                
        asms.Add(Assembly.GetAssembly(typeof(System.Text.RegularExpressions.Regex)));
        // System.Web
        asms.Add(Assembly.GetAssembly(typeof(System.Web.HttpUtility)));
        // System.Windows.Forms
        asms.Add(Assembly.GetAssembly(typeof(System.Windows.Forms.Control)));
        // System.Xml
        asms.Add(Assembly.GetAssembly(typeof(System.Xml.XmlNode)));
        // System.Xml.Linq (.NET 3.0)
        asms.Add(Assembly.GetAssembly(typeof(System.Xml.Linq.XObject)));

        bool isDotNet = false;

        // search list
        foreach (Assembly asm in asms)
        {
            if (asm.GetType(type.FullName, false, false) is Type)
            {
                // Names are OK => check if same assemblies
                isDotNet = asm.Equals(type.Assembly);

                if (isDotNet)
                {
                    break;
                }
                // Assemblies are not the same
            }
        }

        return isDotNet;
    }
}
Abgelegt unter .net, type, check, isdotnet, dotnet.

1 Kommentare zum Snippet

Marcel Kloubert schrieb am 30.10.2009:
System.Text.RegularExpressions.Regex scheint im eigenen Assembly zu sein, daher Verweis hinzugefügt
 

Logge dich ein, um hier zu kommentieren!