C# - To Be XML Serializable, Types Which Inherit From ICollection Must Have An Implementation Of Add?
Nov 10, 2010
I have CSLA (1.x framework) objects from an existing project that I'm trying to use in a new .Net 4.0 project. The objects are being used in production and I really can't convert them to 2.x or EF without having 2 sets of objects.
In my c# webservice (when I try to run it) I am getting the following error:
To be XML serializable, types which inherit from ICollection must have an implementation of Add(objectname.object) at all levels of their inheritance hierarchy. objectname.objectList does not
implement Add(objectname.object).
Like I said these objects are CSLA objects written in vb.net. I don't know where to look on this one. Is it an issue of .Net 4.0 trying to talk to CSLA 1.x or is it a web service issue (as these objects never used web services originally)?
Does anyone have an idea about where I should look to figure out this issue? Should I suggest converting to CSLA 2.x?
I want to put POCO object to Velocity cache. How can I serializable ICollection to Velocity cache, or exclude ICollection from serialization?
I got this exception
Type 'System.Collections.Generic.ICollection`1[Model.Collection]' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types.
I have an application that allows admins to add types such as document types and training types that are in seperate tables with a foreign key in a transaction table.
When structuring my class I decided to go with an abstract-like pattern (without the factory methods though). So I have a Type abstract class that defines my Save, Delete, and GetList methods. I have a training type class that inherits this class. The thing is all types have 3 main properties - defined in the abstract base - but have different source tables and thus different store procedures in my DbCommand object. So basically I repeat setting up the same parameters on all the derived classes. I would like to implement the common stuff in the base but I am getting thrown off by the difference in data sources.
I am changing my ASP.NET app to use a web farm. To do this, I need to change the session state from in-proc to a State Server. To do this, it is my understanding that the classes that are used must be marked as serializable. How can you tell if that is possible with a class? Will you get an error at compile time if it is not possible?
I follow the code snippet to calculate Session size. Profile Memory Usage of Session State ASP.Net My problem is some properties of objects aren't marked as Serializable so I cannot apply the solution. Can I just bypass non-serializable properties?
I'm a little green when it comes to streaming and serialization...but what i wanna do is make the Upload method on the server return a serializable object to the client (it is void right now). I have a public class ServiceResult that i decorate with [Serializable], and a public class FileTransferService that implements IFileTransferService
[ServiceContract()] public interface IFileTransferService { [OperationContract(IsOneWay = false)] string Upload(FileTransferRequest request); } The implementation does its thing, and then at the end i create and serialize the object and try to return the string return ServiceResultSerializer.SerializeAnObject(result); On the client side i call this service using this class [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")] [System.ServiceModel.ServiceContractAttribute(ConfigurationName = "IFileTransferService")] public interface IFileTransferService { // CODEGEN: Generating message contract since the wrapper name (FileTransferRequest) of message FileTransferRequest does not match the default value (Upload) [System.ServiceModel.OperationContractAttribute(IsOneWay = false, Action = "http://tempuri.org/IFileTransferService/Upload")] string Upload(FileTransferRequest request); }
I'm basically taking this project found on this blog: [URL] And trying to make it return a value that the client caller can use I get an error right now that says: The operation 'Upload' could not be loaded because it has a parameter or return type of type System.ServiceModel.Channels.Message or a type that has MessageContractAttribute and other parameters of different types. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method must not use any other types of parameters. Which i have no idea what it means :P I think cuz im trying to change the Service paramaters.
public class Entity { public IdType Id {get;set;} public string Data {get;set;} } [TypeConverter(IdTypeConverter))] public struct IdType { ... any data ... }
The IdTypeConverter can convert the IdType struct from and to string. Now, what I want is this class to be serializable for AJAX, WCF and ViewState. The senario could be a WCF web service which provides as array of Entity[] to a DataSource. And a custom control which binds to the datasource, saves this class to it's ViewState and sends the data to client side code. This could be achieved easily by simply adding a [Serializable] attribute to all serialized types. But I don't want the IdType to be serialized, but to be converted to a string. Thus the JSON representation should be
This would analogously be the optimal serialization for WCF and ViewState. Another solution would be to write another class
public class JsonEntity { public JsonEntity(Entity from) { Id = from.Id; Data = from.Data; } public string Id {get;set;} public string Data {get;set;} }
and use this for JsonSerialization. But I don't like this, because this would imply that the control which is sending the data to the client knows about the Entity type. The actual question is: Is it possible to customize JsonSerialization with attributes without breaking WCF and ViewState serialization? DIT: An answer like "That' impossible" would satify me, since I'd stop trying.
Specifically we're making our application compatible with the Out Of Process Session State server where all types saved in session must be serializable. Is there a way to see at compile time that any type put into HttpSessionState is marked with the Serializable attribute. Something along the lines of this 'non-valid' code
public static void Put<T>( string key, T value ) where T : IsMarkedWitheSerializableAttribute { HttpContext.Current.Session[key] = value; }
I like this idea when I don't have to use slow expression compilation to be strongly typed. But the current implementation is too aggresive for me - I hate virtualization my action methods.My question is: Are you planning some (branch) implementation that will not require action method virtualization? I think that most of code could be shared in both branches...
We have application build in asp.net in which on button we need to go to OBIEE dashboard. Similarly need to come back from OBIEE to ASP.NET application.
Currently I am using redirecting from ASP.net page to OBIEE with username and password in the URL. But as per my requirement i need to implement SSO or username and password should not be passed in URL query string.
I created a page to be the base Page in my web application to add inside it some common functionality. but when I try to inhirite from it then VS gives me the following error:
The type or namespace name 'CentralPage' could not be found(are you missing a using directive or an assembly reference?)
Note: I just want code-behind functionality in the base page.
What method to override in order to be able to capture the data via a custom modelbinder. I noticed this article:http://www.singingeels.com/Articles/Model_Binders_in_ASPNET_MVC__Part_2.aspx and there GetValue is overridden but I don't see that in MVC 2. What must I do to be able to make this work?
When using a databound control the Bind() method does some magic to first extract the current value from the datasource and then pass an update back to the datasouce when an update is performed.
Now I have created a custom datasource and am supplying my own custom data which all works fine. For read only the following code works a treat. As you can see I am accessing both a named index into the collection and a property.
Now when using Bind() I cannot find a way to accomplish this. Bind() would appear to look for either an object property or a database row column (not sure how it does this) and I cannot find a way to change this.
It shouldn't be that difficult because the hard part is obtaining the data, which my code below can already do. The changes are passed back as a dictionary which should be simple. But I need a way to write my own bind method and I haven't managed to find out how.
I'm fairly new to dependency injection but it seems like a proper DI implementation will be fairly complex.
For example, DI requires a centralized class that manages the configuration and resolves the dependencies at runtime.
DI is also based on the concept of using interfaces. For example, a SpecialLogger should use an ILogger interface.
The centralized DI manager class will need to register types - for example, associate ILogger to SpecialLogger.
SpecialLogger will also need to implement the ILogger interface so SpecialLogger can be used through the DI ILogger interface.
Therefore, it seems like a sln using DI will need multiple projects to support DI. Here is an example for logging:
* MyCompany.MyDivision.Framework.DI.Management - this would have the DI manager where dependency types are registered and resolved at runtime * MyCompany.MyDivision.Framework.Logging - this would have the implementation of a logging class. The main logging class would need to implement ILogger. * MyCompany.MyDivision.Framework.DI.Interfaces - this would have the ILogger interface.
Interfaces would need to be stored in a separate class library from the DI manager because both the DI manager and SpecialLogger use the ILogger interface. Since the DI manager associates SpecialLogger to ILogger a circular reference would be encountered without a separate class library to store the ILogger interface.
I want to use Event Aggregator to allow communication between presenters on the page. I am using currently this implementation http://kentb.blogspot.com/2008/03/event-hub.html. But in asp.net I am not sure about side effects which can occur.
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?
use a textbox and the AutoCompleteExtender to search for the customer. For example, on the PurchaseOrder form, I have a textbox with a Customer field, and when I type in the name of the customer, the AutoCompleteExtender shows the possible matches.Now, it takes a few seconds to show the list of values, even with setting the correct values on the extender, and if the user types in the name of the company, e.g. Contoso, and leaves the textbox, there might be 2 Contoso's in the database. The AutoCompleteExtender does not continue when the user leaves the textbox, thus the CustomerId is not determined yet.
In MVCs with which I have worked, the Controller has the job of co-ordinating a number of views, consequent to some user action against the model.
However in ASP MVC, there never appears to be more than 1 view resulting from an http request (please correct me if I am wrong). Instead the "Controller" in ASP MVC appears to be a URL Routing Target.
Also, in my (admittedly limited) experience, the Model in MVC is intended to be a model of the problem domain of the application. However in ASP MVC, the "Model" appears to be a model of the data binding of the corresponding view.