Best Way To Determine Type Of Object Serialized To XML?
Jan 2, 2011
I have a table in my SQL Server DB that holds auditing information for certain actions a user takes within my system. Things like who performed the action, when it was performed, and what action are all pieces of information that can easily span multiple actions. But depending on the action performed, there may be other information that I want to capture, that is specific to the action. To handle this, I elected to add an "XML Metadata" column to the table that holds serialized XML of different metadata objects that I've created. I created a metadata object for each of the actions that I'm interested in tracking extra for. So each object is responsible for tracking specific extra information (metadata) for it's action. The objects are serialized and written to my new column.
I have SystemAction objects that I use to store information from this table, and I've added a string field that holds the XML string from the DB. The problem is, when I'm reading this XML back from the SystemAction objects, I'm struggling with a way to generically translate it back into it's correct metadata object. Each metadata object is going to have different fields, and each object has it's own static method that takes an XML string and attempts to return the metadata object type. So I could say:
But I really don't know of a way to say "Here's some XML that could translate to any number of different objects. Figure it out and give me the right object back."
Given my current implementation, I could always just assign a unique ID to each metadata object that is stored as a field in each object, then use a case statement to switch on that ID and use the appropriate class's static build method to build the right object. But I was hoping for something a little more automatic than that. What if I have a List of SystemAction objects and just want to loop through them and generate the correct metadata object type?
I have an issue with deserializing an object. I get an error 'System.Int32' cannot be converted to type 'System.Decimal'. This object has many child objects and since this object has been serialized, a new version of the object has one or many fields that have been changed from int to decimal and now I can't deserialize the object because it doesn't match my original object.
I have tried using the OnDeserializing method but the context parameter.
Is there a way around this? I've found some examples online but it doesn't really apply to my situation. I would just like to know if there is a way to view my serialized object even if my object has now changed or if there is a way to find out which variable needs to be changed to decimal and how to go about doing it.
I've added your code but I'm not quite sure how to call it from my code. Here's what I've got:
public static Application LoadSnapshot(int appID, int statusID) { ApplicationSnapshotCollection AppSnap = new ApplicationSnapshotCollection(); AppSnap.LoadByAppAndSnapshotStatusID(appID, statusID);
[Code]....
How do I go about calling the constructor with the proper parameters in my scenario?
I have an issue with deserializing an object. I get an error 'System.Int32' cannot be converted to type 'System.Decimal'. This object has many child objects and since this object has been serialized, a new version of the object has one or many fields that have been changed to decimal and now I can't open or view the object because it doesn't match my original object. Is there a way around this? I've found some examples online but it doesn't really apply to my situation. I would post some code but I don't think it would really help...I would just like to know if there is a way to view my serialized object even if my object has now changed and how to go about doing it.
I have an Entity Framework data model. Part of the model is a Customer entity. The web service provides a method to get a customer, and to receive an updated version of this customer to be persisted.
To test this, I created a new ASP.NET web Application, (Solution > Add > New Project > ASP.NET Web Application), then added a reference to my service reference using the standard Add Service Reference dialog. I then call the service using the following code:
var client = new CustomerServiceClient(); var customer = client.GetCustomerByID(18); // get it customer.LimitDown = 100; // change it client.SaveCustomer(customer); // persist it
Everything works as expected.
Now, I do exactly the same thing, but this time with as ASP.NET Web Site (Solution > Add > New Web Site > ASP.NET Web Site). I add the reference in a similar fashion and copy and paste the code above into the new site. But now I get the following exception thrown on the 4th line:
System.InvalidOperationException The EntityReference object could not be serialized. This type of object cannot be serialized when t RelationshipManager belongs to an entity object that does not implement IEntityWithRelationships.
Source Error:
Line 2474: Line 2475: public SkyWalkerCustomerService.OperationResult SaveCustomer(SkyWalkerCustomerService.Customer[code]....
Googling for this error returns very little. Why doesn't this work?I guess one answer would be to use a web application instead of a web site, but I have an large existing site to which I need to add the service reference, and I'd rather not convert it.
I have a asp.net vb.net app, with a upload file control, when i upload the file i can get the type of file the extension : .(extension),But if the user change the extension how i can get the real type of file?
I want to determine the browser type in code-behine file using C# on ASP.NET page.If it is IE 6.0, I have to execute certail lines of code.Can anybody provide code sample.
I'm looking to alter the way my asp .net webpage is output to the browser depending on the css media type being used. Although the css is generally taking care of the differences in appearance between screen and print mode I would also like to make some minor adjustments to the markup when print mode is required. I would simply be dropping a floated section down below its sibling rather than as a 2 col approach which is to used during screen layout in the browser.
i am receiving the follwing error when i am invoking a custom object "Object of type 'customObject' cannot be converted to type 'customObject'." Following is the scenario when i am getting the error i am invoking a method in a dll dynamically. Load an assembly
CreateInstance.... calling MethodInfo.Invoke() passing int, string as a parameter for my method is working fine => No exceptions are thrown. But if I try and pass a one of my own custom class objects as a parameter, then I get an ArgumentException exception, and it is not either an ArgumentOutOfRangeException or ArgumentNullException. "Object of type 'customObject' cannot be converted to type 'customObject'."....................
I have an asp.net web site where I'm trying to resolve what looks like a problem with ASP.NET AJAX:
Microsoft JScript runtime error: Sys.ArgumentTypeException: Object of type 'Sys.Extended.UI.AccordionBehavior' cannot be converted to type 'Sys.UI.Behavior'. Parameter name: instance
I've googled around a lot, and looked at the code presented (see below, no idea what it means) but no luck.
I've tried changing scriptmanger scriptmode to release, and a bunch of other things too.
Details:
Visual Studio 2010 ASP.NET 4.0 Ajax control toolkit 4.0 jQuery 1.4.2 jQuery UI 1.8.5
JS Code the error occurs in, inside ScriptResource.axd:
dispose:function() { var c=this; b.UI.Behavior.callBaseMethod(c,eb); --------- this line var d=c._element; if(d) { var f=c.get_name(); if(f) d[f]=a; var e=d._behaviors; Array.remove(e,c); if(!e.length) d._behaviors=a; delete c._element } }
*Update: * Added accordion control declaration as requested, is there anything else I can add that could be useful?
Does anyone have any idea about this error at all - am I right in thinking it's MS AJAX not playing nicely with other javascript (probably jQuery UI) on the page?
I'm building a website in vs2010, i generate usercontrols (aspx and ascx pages), if i run the website i get the error : unable to cast object of type 'ASP.ProjectName_master' to type 'ProjectName.master'
I have a folder 'App_Code' under my startproject, that's not a default asp folder any more i think since vs2005, is that maybe the problem?
Under the App_Code folder i have the master.cs file, in this file i get the error.
I have a main page with several menu choices, one of which launches an ajax enabled window. The following pattern occurs:If I:
1) Launch site 2) Select menu choice listed on master page that is not ajax enabled 3) Select menu choice that launches ajax enabled popup. 4) close pages
All is OK.If I repeat the steps, but in step 2 I select an ajax enabled page and them launch popup, I get the following error:Message: Sys.ArgumentTypeException: Object of type 'Sys.UI._Timer' cannot be converted to type 'Sys.UI._Timer'.I have spent days on this and have been unable to solve it. If I remove the ajax ToolkitScriptManager and update panels from any of the pages and launch the popup, it works. Can anyone offer some guidance?that are not ajax enabled and then selethat includes an ajax enabled popup window. T
I've got a subweb as application. It's called ADMIN. It works fine when running locally but when deploying in the development web server, i got the error: Unable to cast object of type 'System.Web.HttpApplication' to type 'Microsoft.Practices.CompositeWeb.WebClientApplication'
I've got a App_global.asax.dll and App_global.asax.complied on the subweb folder Admin.
I'm trying to pass email addresses from an array to a stored procedure, then display the results in my gridview. I get the following error:No mapping exists from object type System.String[] to a known managed provider native type.On this line: Dim DR As SqlDataReader = MyCommand.ExecuteReader
I have an application that I would like to be able to allow the user to modify multiple characteristics of each record within a datagrid.
Most characteristics require data to be entered in a text box but some a check box would be more appropriate.
My question is does a gridview column need to have all the same item template controls? or could I read from the database the control type and dynamically alter the template control for each row as it loads?
I'm trying to create a simple Guestbook web service using ASP.NET WebServices. When trying to serialize a list of objects, I get the following exception:
System.InvalidOperationException: The type of the argument object 'GuestBookService.GuestBookEntry' is not primitive.
I am trying to write a function that can be called to run a stored procedure. I pass the stored procedure name, followed by as many parameters as I need to run the procedure. I am able to do this by using the params keyword, so my function looks something like this;
[Code]....
How can I determine what the data type of the parameter is? Maybe I need to alter the string[] part, above?
I'm trying to follow an example in a book i'm reading, but the example is using linq to sql, i'm trying to use linq to xml. Problem is i get the following error: [Code]....
I want to do paging the API Membership without using the datacontrols, but I get this error "Unable to cast object of type '<TakeIterator>d__3a`1[System.Char]' to type 'System.Collections.IList'." when I do this,
Basically, what I did is that: I have a table in SQL database and some of data fields allow null. I built Objectdatasource through dataset. When I built update page using dataset. It generate the following error before showing the update page correctly. It seems I have issue to retrieve the null value from the database through using objectdatasource through dataset. Any suggestions?An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code
I am trying to write a table output from SQL database to a gridview/ Data List through an Object Data Source. I am a new starter and your help will be useful.
public List<Staff> GetStaff() cmd.CommandType = SqlConnection con = new SqlConnection(connectionstring);SqlCommand cmd = new [code]...
I am trying to upload a picture into database using FormView insertItemTemplate. FormView is bounded by objectdatasource.To upload, I placed FileUpload control inside insertItemTemplate.In table the dataType is image.Error:Object of type 'System.Boolean' cannot be converted to type 'System.Byte[]'.