添加项目文件。
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
using Autofac;
|
||||
using Autofac.Integration.WebApi;
|
||||
using Microsoft.JScript;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Optimization;
|
||||
using System.Web.Routing;
|
||||
using UFSoft.U8.U8M.Common;
|
||||
|
||||
namespace UFIDA.U8.Framework.Api
|
||||
{
|
||||
public class WebApiApplication : HttpApplication
|
||||
{
|
||||
private readonly string s_u8Root;
|
||||
private readonly string s_u8MPath;
|
||||
private readonly string s_u8FrameworkPath;
|
||||
private readonly string s_u8APIFramework;
|
||||
|
||||
|
||||
public WebApiApplication()
|
||||
{
|
||||
s_u8Root = __GetU8InstallPath();
|
||||
s_u8MPath = $@"{s_u8Root}U8M\";
|
||||
s_u8FrameworkPath = $@"{s_u8Root}Framework\";
|
||||
s_u8APIFramework = $@"{s_u8Root}UFMOM\U8APIFramework\";
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void Application_Start()
|
||||
{
|
||||
AreaRegistration.RegisterAllAreas();
|
||||
GlobalConfiguration.Configure(WebApiConfig.Register);
|
||||
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
|
||||
RouteConfig.RegisterRoutes(RouteTable.Routes);
|
||||
BundleConfig.RegisterBundles(BundleTable.Bundles);
|
||||
|
||||
AppDomain.CurrentDomain.AssemblyResolve -= __CurrentDomain_AssemblyResolve;
|
||||
AppDomain.CurrentDomain.AssemblyResolve += __CurrentDomain_AssemblyResolve;
|
||||
|
||||
}
|
||||
|
||||
private void ConfigureDependencyInjection(HttpConfiguration config)
|
||||
{
|
||||
var builder = new ContainerBuilder();
|
||||
//builder.RegisterType<GMUtil>().As<>();
|
||||
|
||||
var container = builder.Build();
|
||||
|
||||
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
|
||||
}
|
||||
|
||||
|
||||
private static string __GetU8InstallPath()
|
||||
{
|
||||
string root;
|
||||
var installPath = Registry.LocalMachine.OpenSubKey(GlobalConstDefine.Product_Registry_InstallKey);
|
||||
root = installPath == null ? Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase) : installPath.GetValue(string.Empty).ToString();
|
||||
return root += @"\";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 缺少程序集全局处理事件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="args"></param>
|
||||
/// <returns></returns>
|
||||
private Assembly __CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
|
||||
{
|
||||
//先在已经加载的程序集中选择
|
||||
foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
if (args.Name.Equals(asm.FullName))
|
||||
return asm;
|
||||
}
|
||||
|
||||
//取未加载的DLL名
|
||||
var sAsmName = args.Name.Contains(",") ? $"{args.Name.Substring(0, args.Name.IndexOf(','))}.dll" : $"{args.Name}.dll";
|
||||
|
||||
//到指定的目录下找
|
||||
if (File.Exists(s_u8Root + sAsmName))
|
||||
return Assembly.LoadFrom(s_u8Root + sAsmName);
|
||||
if (File.Exists(s_u8MPath + sAsmName))
|
||||
return Assembly.LoadFrom(s_u8MPath + sAsmName);
|
||||
if (File.Exists(s_u8FrameworkPath + sAsmName))
|
||||
return Assembly.LoadFrom(s_u8FrameworkPath + sAsmName);
|
||||
if (File.Exists(s_u8APIFramework + sAsmName))
|
||||
return Assembly.LoadFrom(s_u8APIFramework + sAsmName);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user