2016-05-26 5 views
0

Название может меня каким-то образом запутать. Поэтому позвольте мне объяснить мое требование.Вызов всех методов для определения на одной странице aspx

Я хочу проверить мои услуги, которые были использованы на моем веб-сайте, работает. Для этого я создаю страницу aspx с помощью другого метода, который вызовет каждый метод обслуживания, чтобы проверить работу службы.

Теперь Req is: Я не хочу вызывать все эти методы в своем событии загрузки страницы, но вместо этого я хочу, чтобы при загрузке страницы он автоматически вызывал каждый метод на этой странице.

Эти метод запишет там соответствующий ответ на странице с помощью Response.Write

ответ

0

Вы могли бы использовать отражение для этого:

public partial class Reflection : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Type type = this.GetType(); 
     foreach(MethodInfo info in type.GetMethods()) 
     { 
      if (info.Name.StartsWith("DoStuff")) 
       info.Invoke(this,null); 
     } 
    } 

    public void DoStuff1() 
    { 
     Response.Write("DoStuff1<br />"); 
    } 

    public void DoStuff2() 
    { 
     Response.Write("DoStuff2<br />"); 
    } 

    public void DoStuff3() 
    { 
     Response.Write("DoStuff3<br />"); 
    } 
} 
+0

Привет Денис Я отправил фрагмент кода. Дайте мне знать, если у вас есть какие-либо идеи о проблеме я столкнулся .. спасибо заранее – Nischal

+0

Вы надеваете» t есть какие-либо методы, которые начинаются с «DoStuff» в вашем коде. Вот почему он не работает. –

+0

Он по-прежнему не работает должным образом. Теперь с приведенным выше кодом он работает только один раз при загрузке первой страницы не после обновления этой страницы. – Nischal

0

То, что я хочу, чтобы сделать это в качестве многократно используемого компонента. Я пробовал что-то вроде ниже. Теперь проблема с приведенным ниже кодом заключается в том, что он работает только один раз.

Конструктор атрибута является вызовом только один раз, а не на странице обновления. :( Дайте мне знать, что я делаю неправильно здесь.

[ServiceCheck()] 
public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    public void AccountApplicationService() 
    { 
     HttpContext.Current.Response.Write("Service is up"); 
    } 

} 

[AttributeUsage(AttributeTargets.All)] 
public class Servicecheck : Attribute 
{ 

    public Healtcheck() 
    { 
     Assembly exeAssble = Assembly.GetExecutingAssembly(); 
     Type classType = exeAssble.GetType("MvcApplication2.WebForm1"); 
     object clasInst = Activator.CreateInstance(classType); 
     MethodInfo method = classType.GetMethod("AccountApplicationService"); 
     string[] parameter = new string[0]; 
     method.Invoke(clasInst, parameter); 
     //clasInst = null; 

    } 
} 
Смежные вопросы