Web Services - Can A Webservice Class Inherit Page Class?
Jan 6, 2011
i have an application consisting of two asp.net projects. And i have have a BasePage which inherits System.Web.UI.Page and have the class some core logic which i require in all of my pages(Implemented in BasePage.cs). So all my pages inherit this BasePage.cs . Now can an Webservice inherit the same class apart from the normal webservice class System.Web.Services.WebService
I might be asking a dumb question, but I have a client for whom I need to build many websites (10+) (asp.net 3.5) which will all the pages on each site will have the same codebehind, but the sites will launching in different regions and whilst following the same template, will have different content.I have built and launched site 1, and sites 2, 3 & 4 is nearly live, but it occurs to me that as all the sites are basically the same, the code is going to get more complicated to update as it will be duplicated, so if I need to do a bug fix on one site, I'll need to do the fix on all websites (and this is going to get complicated.)
I was wondering if it possible to somehow create a class library of all the current aspx.cs files, reference this dll in each website and then inherit these classes into the .aspx.cs files. So default.aspx in each site would still have a CodeFile of "Default.aspx.cs", but Default.aspx.cs would inherit the corresponing class from the dll:
using WebPagesClass; public partial class _Default : WebPagesClass._Default { }
The reason for doing it like this is that if I need to change any code on a specific website (for minor changes in languages for instance), I can override the page functions and change the parts required. For all other pages which have not cha, I can just copy from a single website.Is this vaguely possible? If not anyone one got any killer suggestions of how to manage so many websites from a single codebase?
Recently, I tried to get my Web Service class to inherit from a custom base class that inherits from System.Web.Services.WebMethod instead of the System.Web.Services.WebMethod directly.
However, I've been getting Error 500.
Public Class Service1 Inherits BaseClass <System.Web.Services.WebMethod()> _ Public Function GetSessionID() As String GetSessionID = Me.Session.SessionID End Function End Class
public class BaseClass Inherits System.Web.Services.WebService public property Property1 as string public property Property2 as string
Here When i create object of Class InheritingOneConstruntor value of public field var1 is zero at last. But when i checked step by step through debugging i found that when base class's New() constructor is called, for a moment all var1's value becomes 89. All var1 means at all locations where var1 is used i.e., in base class and in child class.But the moment control exits New() constructor of base class, var1's value again becomes zero. Why it happend ?
I have Page, MasterPage and UserControl in my project.
So I create basepage class and share some logic, then inherit from System.Web.UI.Page. My problem is I want use single basePage for any type of UI content.
this is my tipical page as you can see, i have a connection property and a function who return if the program can connects to DB with any error
[Code]....
i want optimize my codei discovered that i must use connect() function in every page,i am thinking to creare a class who have connection property and connect() method and derive my page to it, is it a good idea?
Using the following Webservice definition using aClientArgs as a complex type:
[System.Web.Script.Services.ScriptService] public class Controller : System.Web.Services.WebService { [WebMethod] public void save_client(aClientArgs client) { // Save client data } } Then defining aClientArgs as a sub-class: public class aArgs { public string id = null; public string name = null; } public class aClientArgs : aArgs { public string address = null; public string website = null; } Returns the following WSDL fragment for the save_client args: <save_client xmlns="http://tempuri.org/"> <client> <address>string</address> <website>string</website> </client> </save_client> When I'm expecting the following: <save_client xmlns="http://tempuri.org/"> <client> <id>string</id> <name>string</name> <address>string</address> <website>string</website> </client> </save_client>
So it appears that the .NET WebService is not treating inherited properties as arguments/variables for purposes of a web service. How do I get .NET to also use the properties of the base class?
Currently I'm doing common functionality required throughout my site inside of my masterpage. What I want to do is move this functionality to a BaseClass so All my pages inherit from the Base Class. However, I'm not sure how to set this up interms of c# code with regards to Using a Base Class and then having a masterpage applied to my aspx pages that i create.
How does we inherit data from one class to another class using Inheritance in practically using c# .net show me some examples. My doubt is we create one method in class and we will call that method when ever it is neccessary in same class , But if we want to call the method and use that properties in another method in another class what is the process?
I'm just starting out learning ASP.NET. From what I understand, ASP.NET differs from old school ASP in that the logic code for a page exists in as separate file rather then being embedded in the ASP page. So when a user requests a page like ShoppingCart.aspx the server reads the directive at the top ...
This tells the server what file and what class in the file is associated with the page. The code behind class also has member variables that correspond to each control on the page, and provide a way for code in the code behind file to manipulate the controls.
First, do I understand this correctly?
Second, could a site be setup with two separate ASPX pages with identically named controls, which both had a directive pointing to the same file and class? Would you even want to do this? Both pages could have the same functionality but a different layout. I was thinking this could be a way to create separate "desktop" and "mobile" versions of a page with out duplicating content in the code behind files.
I guess ultimately what I'm wondering, is if there a way to define an abstract page? Say create an abstract page definition that says a page must have controls "cart_list", "total_lbl", but then be able to have multiple pages that inherit from this abstract page?
am currently working on a web application, whereby I want to add code to the Application_BeginRequest method of the Global.asax file, without adding code to the Global.asax file, which sounds a little crazy, let me explain a bit more.If anyone has ever developed in sitecore before, they would have seen that the Global.asax file has empty methods, however it has 'using Sitecore;' and the global.asax file provided does not inherit from System.Web.HttpApplication.
I have a user control (uc1) which inherits from uc2. uc2 has a user control (uc3) declared in the markup. I am trying to access uc3 from uc1 but I get NullReferenceException. I thought due to inheritance uc3 would instantiate but looks like I am missing a step.
Clarification:
How does the child user control inherit the markup from the base class? The server controls in the base user control are null in the code behind of the base user control. Why?
If I do the same thing with Silverlight in the same solution referencing the same webservice, it does recognize MyWebserviceReference but not the Hello Class it says am I missing a reference to an Assembly. Why in Silverlight and not in Winform ? How to fix this ? Is there something more to do in Silverlight than in Winform than just adding a reference to the webservice ?
I have created a web service. When I check the service directly from it's web page it works correctly. Here's what the code looks like:
using System; using System.Collections.Generic; using System.Web; using System.Web.Configuration; using System.Runtime.Serialization; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Script.Services; using System.Runtime.Serialization.Json; using System.IO; using System.Text; using Microsoft.SharePoint; using System.Collections; namespace MDA.WebParts.SPRolodex_Web_Service { [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService()] public class SPRolodex_Web_Service : System.Web.Services.WebService { public SPRolodex_Web_Service() { } [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public bool ListExists(string personalUrl, string listName) { try { SPSite mySite = new SPSite(personalUrl); SPWeb web = mySite.OpenWeb(); SPList list = web.Lists[listName]; return true; } catch (ArgumentException) { return false; } } } }
However, when I call the method using ServiceProxy.js (a jQuery based library) I get this error
"Only Web services with a [ScriptService] attribute on the class definition can be called from script."
As you can see the class has the ScriptService attribute and the methods have the ServiceMethod attribute.
I'm getting started with Astoria/ADO.NET Data Services/WCF Data Services. Looking through a lot of the code samples out there, it appears that the MimeType attribute used to be a method level attribute. After installing the latest update, it is now a class level attribute.
If I have more than one Service Operation that I want to return as a certain MimeType, then it appears now that I have to create a new service for each operation. Is this correct?
Most examples are like this:
[WebGet] [SingleResult] [MimeType("application/pdf")] public IQueryable<byte[]> FooPDF() { var result = from p in this.CurrentDataSource.MyPDFs where p.FooID == 2 select p; return result.Take(1).Select(p => p.PDF); }
I get "Attribute 'MimeType' is not valid on this declaration type. It is only valid on 'class' declarations." when I compile, because now I can't do this.
Now, I have to do this:
[MimeType("FooPDF", "application/pdf")] public class FooService : DataService<FooDBEntities> { public static void InitializeService(DataServiceConfiguration config) { config.SetServiceOperationAccessRule("FooPDF", ServiceOperationRights.All); } [WebGet] [SingleResult] public IQueryable<byte[]> FooPDF() { var result = from p in this.CurrentDataSource.MyPDFs where p.FooID == 2 select p; return result.Take(1).Select(p => p.PDF); } }
What's worse is that I can't add duplicate MimeType attributes to my class.
I'm trying to create a data access later using System.DirectoryServices. I'd like to use the MVC 2 framework and have all my views be mostly strongly-typed. Does anyone know any good way to this?
For example I started creating a Group Entity:
public class Group { public string DistinguishedName { get; set; } public string GroupName { get; set; } }
And an abstract interface:
public interface IGroupRepository { List<Group> Groups { get; } }
I am confused about developing the GroupRepository using the system.directory services. Connecting to a SQL database is easy there are examples everywhere but I have no been able to find any using the System.directory sevices in conjunction with a class using MVC. Has anyone tried to do something like this?
to be able to send a XmlSerializer class (which is generated obvious in remote C# application) over a WebService that will then deserialize it into a class. (I didnt know it its possible either) XmlSerializer mySerializer = new XmlSerializer(typeof(SystemInfo)); StreamWriter myWriter = new StreamWriter(textBox1.Text); mySerializer.Serialize(myWriter, sysinfo); [WebMethod] public void Reports(XmlSerializer xmlSerializer)
I've inherited a half completed application that seems to use a model that I'm not sure can reliably work.It is a ASP.NET webservice that on each call loads a unmanaged C++ .DLL using
[DllImport ( "kernel32.dll" , EntryPoint = "LoadLibraryA" )] public static extern int LoadLibrary( string lpLibFileName );. [DllImport(@"MyUnamanagedDLL.dll")] public static extern string DoStuff( );
In the unmanaged C++ .dll it is using a singleton to hold state between calls.This is so that it only has to initialise once and load a bunch of slow stuff from disk and database rather than on each webservice call as this is too slow.
I know i've seen a tutorial for this, but can't locate it anymore. I have a class Employee in c# side, I also have a webservice where I pass in an ID# and an Employee object is returned. Now I want this object returned to Javascript code, I know I've seen it done before, can someone point me to a tutorial that shows something like this being done. I'm using the MicrosoftAjax.js file.