C#某种插件系统
我是一名移动网站开发人员,并试图通过移动广告服务通过我的流量获利,并且我遇到了问题。C#某种插件系统
首先,为了让您的广告获得最大收益,您通常需要向服务器端请求广告公司的服务器,并且广告服务的数量非常少。当你想在一个站点使用它们时,问题就会开始。
所有服务器端调用都有不同的方法,尝试维护和实现这些广告代码在一段时间后会变得很痛苦。
所以我决定写一个类系统,我可以简单地为每个公司创建方法并上传到我的网站。
到目前为止,我已经 公共广告类 与返回具有服务的名称作为枚举我使用所有的广告服务
我也已经转换服务器请求代码的广告 公共Adservice类GetAd出现方法public AdPublisher类上课。
它工作正常,但我希望能够创建一个广告服务类上传它,以便asp.net应用程序可以像插件系统一样自动导入/识别它。
因为我是.net的新手,我不知道从哪里开始或如何去做。
为了使事情清楚这里有我的课
namespace Mobile.Publisher
{
public class AdPublisher
{
public AdPublisher()
{
IsTest = false;
}
public bool IsTest { get; set; }
public HttpRequest CurrentVisitorRequestInfo { get; set; }
public Advert GetAd(AdService service)
{
Advert returnAd = new Advert();
returnAd.Success = true;
if (this.CurrentVisitorRequestInfo == null)
{
throw new Exception("CurrentVisitorRequestInfo for AdPublisher not set!");
}
if (service == null)
{
throw new Exception("AdService not set!");
}
if (service.ServiceName == AdServices.Admob)
{
returnAd.ReturnedAd = AdmobAds("000000");
}
return returnAd;
}
}
public enum AdServices
{
Admob,
ServiceB,
ServiceC
}
public class Advert
{
public bool Success { get; set; }
public string ReturnedAd { get; set; }
}
public partial class AdService
{
public AdServices ServiceName { get; set; }
public string PublisherOrSiteId { get; set; }
public string ZoneOrChannelId { get; set; }
}
private string AdmobAds(string publisherid)
{
//snip
return "test"
}
}
基本上我希望能够添加其它广告服务,这样的代码
private string AdmobAds(string publisherid){
}
因此,它可以导入并确认为广告服务。
我希望我是很清晰
THS似乎是一个非常模糊的/一般性的问题,并考虑你提到你没有太熟悉.NET,我想我会为你指明的方向Managed Extensibility Framework。这是为创建插件/插件系统而设计的官方Micrsoft库(它就像专门的Inversion of Control框架)。请注意,在.NET 4.0中,它实际上是框架基类库的一部分。在Add-ins and Extensibility上也有一个很好的MSDN页面 - 与System.AddIn
命名空间有关 - 您可能也会发现它很有帮助。
您可以动态加载程序集,然后查询类的列表并检查类是否从您的接口派生。检查“装配”类。