TempChart
Posted: Wed Dec 22, 2004 5:27 pm
Hola, instalé una versión de evaluación y tengo el siguiente problema:
estoy guardando el chart en una variable de sesión pero al traerlo me da el siguiente error:
El objeto debe implementar IConvertible.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.InvalidCastException: El objeto debe implementar IConvertible.
Error de código fuente:
Línea 99: tmpChart.Position = 0;
Línea 100: //import saved Chart
Línea 101: WebChart1.Chart.Import.Template.Load(tmpChart);
Línea 102: }
Línea 103: #endregion
Archivo de origen: c:\inetpub\wwwroot\pyramidnaveg8\navegacion.aspx.cs Línea: 101
Seguimiento de la pila:
[InvalidCastException: El objeto debe implementar IConvertible.]
System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +122
System.Convert.ChangeType(Object value, Type conversionType) +57
Steema.TeeChart.Import.Imports.DeserializeFrom(SerializationInfo info, StreamingContext context)
Steema.TeeChart.Chart..ctor(SerializationInfo info, StreamingContext context)
[TargetInvocationException: Se inició una excepción en el destino de la invocación.]
System.Reflection.RuntimeConstructorInfo.SerializationInvoke(Object target, SerializationInfo info, StreamingContext context) +0
System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context) +149
System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder) +95
System.Runtime.Serialization.ObjectManager.DoFixups() +170
System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage methodCallMessage) +248
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage) +190
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream) +11
Steema.TeeChart.Import.TemplateImport.Load(Stream stream)
Navegador.Navegacion.TraerGrafico() in c:\inetpub\wwwroot\pyramidnaveg8\navegacion.aspx.cs:101
Navegador.Navegacion.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\pyramidnaveg8\navegacion.aspx.cs:57
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
--------------------------------------------------------------------------------
Información de versión: Versión de Microsoft .NET Framework:1.0.3705.0; Versión de ASP.NET:1.0.3705.0
donde
private void GuardarGrafico()
{
MemoryStream tmpChart = new MemoryStream();
//export Chart to a MemoryStream template
WebChart1.Chart.Export.Template.Save(tmpChart);
//save template to a Session variable
Session.Add("WC1", tmpChart);
}
private void TraerGrafico()
{
MemoryStream tmpChart = new MemoryStream();
//retrieve the session stored Chart
tmpChart = (MemoryStream)Session["WC1"];
//set the Stream position to 0 as the last read/write
//will have moved the position to the end of the stream
tmpChart.Position = 0;
//import saved Chart
WebChart1.Chart.Import.Template.Load(tmpChart);
}
además
public class GetChart : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// *************************************************************
// Code to retrieve Session saved streamed Charts to a WebForm.
// This code should be included if the WebChart 'UseStreams' property is set to True.
// *************************************************************
string chartName=Request.QueryString["Chart"];
if (Session[chartName]!=null)
{
MemoryStream chartStream = new MemoryStream();
chartStream=((MemoryStream)Session[chartName]);
Response.OutputStream.Write(chartStream.ToArray(),0,(int)chartStream.Length);
chartStream.Close();
Session.Remove(chartName);
}
}
Conclusión: he puesto el código que se indica en la ayuda, cambiado la propiedad TempChart en Session y no he logrado que funcione.
gracias
estoy guardando el chart en una variable de sesión pero al traerlo me da el siguiente error:
El objeto debe implementar IConvertible.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.InvalidCastException: El objeto debe implementar IConvertible.
Error de código fuente:
Línea 99: tmpChart.Position = 0;
Línea 100: //import saved Chart
Línea 101: WebChart1.Chart.Import.Template.Load(tmpChart);
Línea 102: }
Línea 103: #endregion
Archivo de origen: c:\inetpub\wwwroot\pyramidnaveg8\navegacion.aspx.cs Línea: 101
Seguimiento de la pila:
[InvalidCastException: El objeto debe implementar IConvertible.]
System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +122
System.Convert.ChangeType(Object value, Type conversionType) +57
Steema.TeeChart.Import.Imports.DeserializeFrom(SerializationInfo info, StreamingContext context)
Steema.TeeChart.Chart..ctor(SerializationInfo info, StreamingContext context)
[TargetInvocationException: Se inició una excepción en el destino de la invocación.]
System.Reflection.RuntimeConstructorInfo.SerializationInvoke(Object target, SerializationInfo info, StreamingContext context) +0
System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context) +149
System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder) +95
System.Runtime.Serialization.ObjectManager.DoFixups() +170
System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage methodCallMessage) +248
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage) +190
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream) +11
Steema.TeeChart.Import.TemplateImport.Load(Stream stream)
Navegador.Navegacion.TraerGrafico() in c:\inetpub\wwwroot\pyramidnaveg8\navegacion.aspx.cs:101
Navegador.Navegacion.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\pyramidnaveg8\navegacion.aspx.cs:57
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
--------------------------------------------------------------------------------
Información de versión: Versión de Microsoft .NET Framework:1.0.3705.0; Versión de ASP.NET:1.0.3705.0
donde
private void GuardarGrafico()
{
MemoryStream tmpChart = new MemoryStream();
//export Chart to a MemoryStream template
WebChart1.Chart.Export.Template.Save(tmpChart);
//save template to a Session variable
Session.Add("WC1", tmpChart);
}
private void TraerGrafico()
{
MemoryStream tmpChart = new MemoryStream();
//retrieve the session stored Chart
tmpChart = (MemoryStream)Session["WC1"];
//set the Stream position to 0 as the last read/write
//will have moved the position to the end of the stream
tmpChart.Position = 0;
//import saved Chart
WebChart1.Chart.Import.Template.Load(tmpChart);
}
además
public class GetChart : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// *************************************************************
// Code to retrieve Session saved streamed Charts to a WebForm.
// This code should be included if the WebChart 'UseStreams' property is set to True.
// *************************************************************
string chartName=Request.QueryString["Chart"];
if (Session[chartName]!=null)
{
MemoryStream chartStream = new MemoryStream();
chartStream=((MemoryStream)Session[chartName]);
Response.OutputStream.Write(chartStream.ToArray(),0,(int)chartStream.Length);
chartStream.Close();
Session.Remove(chartName);
}
}
Conclusión: he puesto el código que se indica en la ayuda, cambiado la propiedad TempChart en Session y no he logrado que funcione.
gracias