HOW TO ABSTRACT A PROPERTY IN ASP.NET PAGES

Chris S

Total Post:48

Points:336
Posted by  Chris S
C# 
 808  View(s)
Ratings:
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; }

}

  1. Andrew Watson

    Post:39

    Points:273
    Re: How to abstract a property in ASP.NET pages

    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.

  1. jayprakash sharma

    Post:117

    Points:821
    Re: How to abstract a property in ASP.NET pages

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

    }

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!