ASP.Net pages can inherit from custom classes (as long as they inherit System.Web.UI.Page). This can be useful to add utility functions or shared (code-behind) behaviors to your pages. (Note that you could also use Extension methods or HTTP modules)
However, if you try to inherit a generic base class, it won’t work:
public class DataPage<T> : Page { public T Data { get; set; } }
<%@ Page Language="C#" Inherits="DataPage<string>" %>
This code results in a yellow screen of death, with the parser error, Could not load type 'DataPage<string>'
.
This happens because the ASP.Net page parser is unaware of C# generics syntax. The familiar generics syntax (eg, List<int>
) is actually a C# innovation and is not used at all in the actual framework. The “native” generics syntax, which is used by Reflection, is markedly different: List`1[Int32]
(namespaces omitted for brevity). This name is returned by the Type.AssemblyQualifiedName property.
Since ASP.Net uses reflection APIs to load types, we need to specify generic types using CLR syntax (and with full namespaces). Therefore, the following page will work:
<%@ Page Language="C#" Inherits="TestSite.DataPage`1[[System.String, mscorlib]]" %>
However, it’s not so simple. ASP.Net does not call Type.GetType
to parse these strings; instead, it loops over every referenced assembly and calls Assembly.GetType
on each one. This is why you don’t need to include the assembly name whenever using the Inherits
attribute (which would have been necessary for Type.GetType
) Ordinarily, this is very useful, but here, it comes back to bite you.
It is not possible to parse a type from one assembly with a generic parameter from a different assembly using Assembly.GetType
, unless the generic parameter is in mscorlib.
Therefore, for example, it is not possible to create an ASPX page that inherits DataPage<DataLayer.Product>
if DataLayer.Product
is in a different assembly than DataPage
. As a workaround, one can create a non-generic class which inherits DataPage<DataLayer.Product>
, then make the ASPX page inherit this temporary class.
5 comments:
You wrote it so well. Emily
I recommend you to visit this website before writing thesis. Here you can learn more at least about introduction
شركة غسيل كنب بمكة بالبخار
تنظيف بمكة افضل شركة تنظيف بمكة بالبخار
شركة غسيل كنب بمكة بالبخار
mr jatt Mp3 New Punjabi Song,Single Tracks Latest song download also Listen Latest Music Albums Online in High Quality at Mrpendus.in
mr jatt
Very Good way of attracting your reader's attention is to write blog like you. Please do contact me on genuinehotelescorts@gmail.com for
Jaipur Call Girls
Jaipur Call Girls
Jaipur Call Girls
Delhi Call Girls
Guwahati Call Girls
Guwahati Call Girls
Guwahati Call Girls
Guwahati Call Girls
Aerocity Call Girls
Lucknow Call Girls
Post a Comment