gpt4 book ai didi

C# 某种插件系统

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:37 25 4
gpt4 key购买 nike

我是一名移动网络开发人员,我试图通过移动广告服务从我的流量中获利,但我遇到了问题。

首先,要充分利用您的广告,您通常需要向广告公司的服务器发出服务器端请求,而广告服务很少。当您想在一个站点中使用它们时,问题就开始了。

所有人都有不同的服务器端调用方法,一段时间后尝试维护和实现这些广告代码会变得很痛苦。

所以我决定编写一个类系统,我可以在其中简单地为每个公司创建方法并将其上传到我的网站。

到目前为止我有公共(public)广告类具有返回 Advert 的 GetAd 方法的公共(public) AdPublisher 类具有服务名称作为枚举的公共(public) Adservice 类

我还将我使用的所有广告服务的服务器请求代码转换为类。

它工作正常,但我希望能够创建一个广告服务类上传它,以便 asp.net 应用程序可以像插件系统一样自动导入/识别它。

因为我是 .net 的新手,所以我不知道从哪里开始或如何开始。

为了清楚起见,这里是我的类(class)

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){
}

以便将其导入并识别为广告服务。

我希望我说得足够清楚

最佳答案

这似乎是一个非常模糊/笼统的问题,考虑到您提到您对 .NET 不太熟悉,我想我会向您指出 Managed Extensibility Framework 的方向.这是一个官方的 Micrsoft 库,专为创建插件/加载项系统而设计(它就像一个专门的控制反转框架)。请注意,在 .NET 4.0 中,它实际上是框架基类库的一部分。在 Add-ins and Extensibility 上还有一个很棒的 MSDN 页面- 与 System.AddIn 命名空间相关 - 您可能会发现它也很有帮助。

关于C# 某种插件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2931410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com