C# some sort of plugin system

Posted by nLL on Stack Overflow See other posts from Stack Overflow or by nLL
Published on 2010-05-28T18:03:58Z Indexed on 2010/05/28 18:12 UTC
Read the original article Hit count: 208

Filed under:
|

Hi, I am a mobile web developer and trying to monetize my traffic with mobile ad services and i have a problem.

First of all to get most of out of your ads you usually need to do server side request to advert company's servers and there are quite few ad services. Problem starts when you want to use them in one site.

All have different approaches to server side calls and trying to maintain and implement those ad codes becomes pain after a while.

So I decided to write a class system where i can simply create methods for every company and upload it to my site.

So far i have public Advert class public AdPublisher class with GetAd method that returns an Advert public Adservice class that has Service names as enum

I also have converted server request codes of all ad services i use to classes.

It works ok but I want to be able to create an ad service class upload it so that asp.net app can import/recognize it automatically like a plugin system.

As I am new to .net I have no idea where to start or how to do it.

To make thing clear here are my classes

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"
}
}

Basically i want to be able to add another ad service and code like

private string AdmobAds(string publisherid){
}

So that it can be imported and recognised as ad service.

I hope i was clear enough

© Stack Overflow or respective owner

Related posts about c#

Related posts about plugin