/*
Kooboo is a content management system based on ASP.NET MVC framework. Copyright 2009 Yardi Technology Limited.
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see http://www.kooboo.com/gpl3/.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Web.Compilation;
namespace Everest.CmsServices.Extension{
public interface IPluginResolver<T>
{
/// <summary>
/// Resolves the specified type name.
/// </summary>
/// <param name="typeName">Name of the type.</param>
/// <returns></returns>
T Resolve(string typeName);
/// <summary>
/// Resolves the specified type names.
/// </summary>
/// <param name="typeNames">The type names.</param>
/// <returns></returns>
IEnumerable<T> Resolve(IEnumerable<string> typeNames);
/// <summary>
/// Resolves the type.
/// </summary>
/// <param name="predicate">The predicate.</param>
/// <param name="directory">The directory.</param>
/// <returns></returns>
T Resolve(Func<Type, Type> predicate, out string directory);
/// <summary>
/// Resolves all.
/// </summary>
/// <returns></returns>
IDictionary<Type, string> ResolveAll();
}
}
|