使用应用程序池加载执行代码
Execute code with Application Pool load
我的网站一直是一个 vb.net 项目,里面有很多页面和 类(我不喜欢)。
现在我需要使用 外部 C# 应用程序 中的一些 类。所以我用所有遗留代码制作了一个新的 vb.net dll 并在 ASP.NET
网站和 C#
应用程序中使用它。
遗憾的是,我的一些 类 读取了 web.config
的配置(其中两个是 static
)。如果它们在外部 dll 文件中,它们 无法访问 web.config
文件,所以我想删除对它的任何引用并在应用程序池加载时配置它们,在任何页面加载之前。
这可能吗?我正在搜索但没有成功!
谢谢!
这是依赖注入模式的示例
using System;
namespace ConsoleApplication1
{
class Program
{
public class NewConfigClass
{
public string MyConfigParameter {get;set;}
}
public class LegacyNeedsConfig
{
public string ConfigurableSetting {get;set;}
public LegacyNeedsConfig(NewConfigClass config)
{
this.ConfigurableSetting = config.MyConfigParameter;
}
}
static void Main(string[] args)
{
NewConfigClass config = new NewConfigClass();
config.MyConfigParameter = "hello world"; //read from web or app config
LegacyNeedsConfig legacy = new LegacyNeedsConfig(config);
Console.WriteLine(legacy.ConfigurableSetting);
}
}
}
我的网站一直是一个 vb.net 项目,里面有很多页面和 类(我不喜欢)。
现在我需要使用 外部 C# 应用程序 中的一些 类。所以我用所有遗留代码制作了一个新的 vb.net dll 并在 ASP.NET
网站和 C#
应用程序中使用它。
遗憾的是,我的一些 类 读取了 web.config
的配置(其中两个是 static
)。如果它们在外部 dll 文件中,它们 无法访问 web.config
文件,所以我想删除对它的任何引用并在应用程序池加载时配置它们,在任何页面加载之前。
这可能吗?我正在搜索但没有成功!
谢谢!
这是依赖注入模式的示例
using System;
namespace ConsoleApplication1
{
class Program
{
public class NewConfigClass
{
public string MyConfigParameter {get;set;}
}
public class LegacyNeedsConfig
{
public string ConfigurableSetting {get;set;}
public LegacyNeedsConfig(NewConfigClass config)
{
this.ConfigurableSetting = config.MyConfigParameter;
}
}
static void Main(string[] args)
{
NewConfigClass config = new NewConfigClass();
config.MyConfigParameter = "hello world"; //read from web or app config
LegacyNeedsConfig legacy = new LegacyNeedsConfig(config);
Console.WriteLine(legacy.ConfigurableSetting);
}
}
}