Jump to content

..and then he figured out inheritance and base classes....


chef

Recommended Posts

chef

Don't laugh at me!

 

I just figured this out and it changes the world!

    public class MyService : MyServiceHandler, IService
    {
        private IJsonSerializer JsonSerializer   { get; }
           
        //Sending objects to the base inherited class!           
        public MyService(ITVSeriesManager series, ILibraryManager libraryManager, ISessionManager sessionManager, ILogManager logManager, IUserManager userManager, IJsonSerializer json, IUserDataManager userData, IDeviceManager device) 
            : base(json, logManager, sessionManager, libraryManager, userManager, series, userData) //<--there
        {
            JsonSerializer  = json;
        }    
               
        public object Post(Request data)
        {
            var myRequestDataSerialized = JsonSerializer.DeserializeFromStream<MyRequestDto>(data.RequestStream);
            
            return GetResponse(myRequestDataSerialized );
        }
    }
    public class MyServiceHandler
    {
        private ILogger Logger { get; }

        //Because this class needed these object, they where passed into the class through the ":base()" of MySerivce constructor
        protected MyRequestHandler(IJsonSerializer jsonSerializer, ILogManager log, ISessionManager sessionManager, ILibraryManager libraryManager, IUserManager userManager, ITVSeriesManager tvSeriesManager, IUserDataManager userData) : base(jsonSerializer, log, sessionManager,libraryManager,userManager, tvSeriesManager, userData)
        {
            Logger = log.GetLogger(Plugin.Instance.Name);
        }

        protected string GetResponse(MyRequestDto myRequestData)
        {            
            Logger.Info(myRequestData.type);
            //Do something with my request data
            
        }
    }

You can pass the objects needed into other classes which are inherited with ":base()" in the constructor, instead of 'newing them up'

 

Base Classes! Son of a...!

 

{faceplam}

 

 

i said don't laugh at me!

 

Edit: wait a minute... is that the "Stack" that everyone talks about?

Edited by chef
  • Like 1
Link to comment
Share on other sites

mickle026

Thanks for sharing this,

 

Although it was staring you in the face, and I kinda saw it ...you explanation is what makes it clearer for me.

 

        public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer)
            : base(applicationPaths, xmlSerializer)
        {
            Instance = this;
        }

 

I kinda got this, not fully understanding it though... but missing other stuff that should be much easier, still learning c# .....

 

this information will probably be needed at some point :)

Edited by mickle026
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...