Home > DeveloperSection > Forums > How to abstract a property in ASP.NET pages
Chris S
Chris S

Total Post:48

Points:336
Posted on    December-05-2014 10:16 PM

 ASP.Net C# 
Ratings:


 2 Reply(s)
 558  View(s)
Rate this:

I am using aspx forms. What we do is that we declare property like for every form. Code is at the end

 

So I was thinking that if we could have a base class that have all the stuff like this but as the form already inherit the Page class we don't have multiple inheritance in C# so here can we use interface to achieve this I am new to oops please let me know it is possible or not.

 

public partial class Default2 : System.Web.UI.Page

{

    public string ImagePath { get; set; }

}



Andrew Watson
Andrew Watson

Total Post:39

Points:273
Posted on    December-06-2014 4:48 AM

You have two options.

 

Create a base class

 

You can create a base class that inherits System.Web.UI.Page and inherit this class in all your pages:

 

public class BasePage : System.Web.UI.Page

{

    public string ImagePath { get; set; }

}

And then inherit this class in your pages:

 

public partial class Default2 : BasePage

{

    ....

}

Create an interface

 

You can create an interface like this:

 

public interface Interface1

{

    string ImagePath { get; set; }

}

And then inherit this interface on all your pages:

 

public partial class Default2 : System.Web.UI.Page, Interface1

{

    public string ImagePath { get; set; }

}

As you can see, the first option (base class) has some advantages over the interface option. You have to define and implement your property only once when using a base class. When using interfaces you have to implement the property on every page too.

 

This is because an interface is only used to define what properties and function there are on an object, not how they work. While a base class can already implement the properties and functions.


jayprakash sharma
jayprakash sharma

Total Post:117

Points:821
Posted on    December-06-2014 5:44 AM

You don't need to inherit from two classes. You need to create a class layer in-between.

 

First create a class that inherits from Page and add your property:

 

public partial class MyPageBase : System.Web.UI.Page

{

    public string ImagePath { get; set; }

}

Then inherit all other classes from your base class. In there you can access everything from Page and MyPageBase:

 

public class MyPage : MyPageBase

{

    public string TestAccessBaseProp()

    {

        var foo = base.ImagePath;

    }

    public string SomeAdditionalProperty { get; set; }

}


Don't want to miss updates? Please click the below button!

Follow MindStick