You've already forked linux-packaging-mono
Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
42
external/referencesource/System.Web/Cache/SubstitutionResponseElement.cs
vendored
Normal file
42
external/referencesource/System.Web/Cache/SubstitutionResponseElement.cs
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Security.Permissions;
|
||||
using System.Web;
|
||||
using System.Web.Caching;
|
||||
using System.Web.Compilation;
|
||||
|
||||
namespace System.Web.Caching {
|
||||
[Serializable]
|
||||
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Unrestricted)]
|
||||
public class SubstitutionResponseElement: ResponseElement {
|
||||
[NonSerialized]
|
||||
private HttpResponseSubstitutionCallback _callback;
|
||||
private string _targetTypeName;
|
||||
private string _methodName;
|
||||
|
||||
public HttpResponseSubstitutionCallback Callback { get { return _callback; } }
|
||||
|
||||
private SubstitutionResponseElement() { } // hide default constructor
|
||||
|
||||
public SubstitutionResponseElement(HttpResponseSubstitutionCallback callback) {
|
||||
if (callback == null)
|
||||
throw new ArgumentNullException("callback");
|
||||
|
||||
_callback = callback;
|
||||
}
|
||||
|
||||
[OnSerializing()]
|
||||
private void OnSerializingMethod(StreamingContext context) {
|
||||
// create a string representation of the callback
|
||||
_targetTypeName = System.Web.UI.Util.GetAssemblyQualifiedTypeName(_callback.Method.ReflectedType);
|
||||
_methodName = _callback.Method.Name;
|
||||
}
|
||||
|
||||
[OnDeserialized()]
|
||||
private void OnDeserializedMethod(StreamingContext context) {
|
||||
// re-create each ValidationCallbackInfo from its string representation
|
||||
Type target = BuildManager.GetType(_targetTypeName, true /*throwOnFail*/, false /*ignoreCase*/);
|
||||
_callback = (HttpResponseSubstitutionCallback) Delegate.CreateDelegate(typeof(HttpResponseSubstitutionCallback), target, _methodName);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user