Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Serializable Extra Types for .NET 4

, 25 May 2011
Serialization for Rapid Application Development.
SerializableExtraTypes.zip
TestLibraryThree
Properties
TestLibraryThree.csproj.vspscc
TestLibraryTwo
Properties
TestLibraryTwo.csproj.user
TestLibraryTwo.csproj.vspscc
Local.testsettings
SerializableExtraTypes.gpState
SerializableExtraTypes.sln.docstates
SerializableExtraTypes.vsmdi
SerializableExtraTypes.vssscc
TraceAndTestImpact.testsettings
SerializableExtraTypes
AMightyOak.Net.ico
Properties
SerializableExtraTypes.csproj.user
SerializableExtraTypes.csproj.vspscc
SerializableExtraTypes.Tests
Properties
SerializableExtraTypes.Tests.csproj.user
SerializableExtraTypes.Tests.csproj.vspscc
TestLibraryOne
Properties
TestLibraryOne.csproj.user
TestLibraryOne.csproj.vspscc
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Web;
using System.Web.Compilation;

namespace Net.AMightyOak
{
    internal class HttpAssemblyLocator
    {
        private IEnumerable<Assembly> AllAssemblies = null;
        private IEnumerable<Assembly> BinFolderAssemblies = null;

        internal HttpAssemblyLocator()
        {
            AllAssemblies = BuildManager.GetReferencedAssemblies().Cast<Assembly>();

            List<Assembly> binFolderAssemblies = new List<Assembly>();

            string binFolder = HttpRuntime.AppDomainAppPath + "bin\\";
            IList<string> dllFiles = Directory.GetFiles(binFolder, "*.dll",
                SearchOption.TopDirectoryOnly).ToList();

            foreach (string dllFile in dllFiles)
            {
                AssemblyName assemblyName = AssemblyName.GetAssemblyName(dllFile);

                Assembly locatedAssembly = AllAssemblies.FirstOrDefault(a =>
                    AssemblyName.ReferenceMatchesDefinition(a.GetName(), assemblyName));

                if (locatedAssembly != null)
                {
                    binFolderAssemblies.Add(locatedAssembly);
                }
            }

            BinFolderAssemblies = binFolderAssemblies;
        }

        internal IEnumerable<Assembly> GetAssemblies()
        {
            return AllAssemblies;
        }

        internal IEnumerable<Assembly> GetBinFolderAssemblies()
        {
            return BinFolderAssemblies;
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

Share

About the Author

Daniel Gidman
Architect Stackify
United States United States
No Biography provided
Follow on   Twitter   Google+

| Advertise | Privacy | Mobile
Web02 | 2.8.140916.1 | Last Updated 25 May 2011
Article Copyright 2011 by Daniel Gidman
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid