RE: Object of type 'System.String' cannot be converted to type 'System
- From: stcheng@xxxxxxxxxxxxxxxxxxxx (Steven Cheng[MSFT])
- Date: Sat, 19 Nov 2005 14:01:00 GMT
Hello Robert,
Welcome to ASPNET newsgroup.
>From your description, you're using a certain 3rd party webcontrol in your
asp.net applicaiton, it works well in ASP.NET 1.1 and after upgrate to the
asp.net 2.0 ,it no longer work and throw some parameter converting error ,
yes?
Based on the exception message and call stack you provided, seems that
webcontrol is using the HttpContext.GetAppConfig method to retrieve
web.config's configuration info in your certain web control. And based on
my research the HttpContext.GetAppConfig method return an object instance
(of a internal class type), so this method is not designed for external
use(mainly used by asp.net runtime internally), also in asp.net 2.0 this
method has been marked as obsolete. So the problem must be caused by some
internal implementation of the method and its return type has been changed.
And from MSDN documenation , we can find that in ASP.NET 2.0, we're
suggested to use the
System.Web.Configuration.WebConfigurationManager.GetWebApplicationSection
instead of the HttpContext.GetAppConfig since the .net framework 2.0 has
provided much more powerful interfaces to retrieve application
configuration data......
So as for your scenario, the webcontrol is developed by 3rd party, I'm
afraid we have to contact the 3rd party to see whether they've provided new
version which has used the new interfaces which can work correctly in
ASP.NET 2.0.
Thanks,
Steven Cheng
Microsoft Online Support
Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
--------------------
| Thread-Topic: Object of type 'System.String' cannot be converted to type
'System
| thread-index: AcXsieY8VZqgYbrQTKSV+fK7fieRiQ==
| X-WBNR-Posting-Host: 67.180.214.235
| From: =?Utf-8?B?Um9iZXJ0?= <robertv@xxxxxxxxxxxxxx>
| Subject: Object of type 'System.String' cannot be converted to type
'System
| Date: Fri, 18 Nov 2005 13:49:06 -0800
| Lines: 78
| Message-ID: <01F487D4-95BA-4BB8-BDFB-5574015111C0@xxxxxxxxxxxxx>
| MIME-Version: 1.0
| Content-Type: text/plain;
| charset="Utf-8"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Content-Class: urn:content-classes:message
| Importance: normal
| Priority: normal
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
| Newsgroups: microsoft.public.dotnet.framework.aspnet.buildingcontrols
| NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 10.40.2.250
| Path: TK2MSFTNGXA02.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSFTNGXA03.phx.gbl
| Xref: TK2MSFTNGXA02.phx.gbl
microsoft.public.dotnet.framework.aspnet.buildingcontrols:14007
| X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet.buildingcontrols
|
| I'm trying to get a control from metabuilders.com dual list)to work under
| ASP.NET 2.0. It worked find under 1.1 and then when i migrated my
| application to 2.0 I ran into problems with it.
|
| However, I'm getting an error on a particular line as follows:
|
| Exception: System.Web.HttpUnhandledException: Exception of type
| 'System.Web.HttpUnhandledException' was thrown. --->
| System.ArgumentException: Object of type 'System.String' cannot be
converted
| to type 'System.Web.VirtualPath'.
| at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo
| culture, BindingFlags invokeAttr)
| at System.Reflection.MethodBase.CheckArguments(Object[] parameters,
Binder
| binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig)
| at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
| invokeAttr, Binder binder, Object[] parameters, CultureInfo culture,
Boolean
| skipVisibilityChecks)
| at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
| invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
| at
MetaBuilders.WebControls.DynamicListBoxResourceHandler.DetermineIsRegistere
| d()
| at
MetaBuilders.WebControls.DynamicListBoxResourceHandler.get_IsRegistered()
| at
|
MetaBuilders.WebControls.DynamicListBoxResourceHandler.RegisterScript(Page
| page, String scriptKey, String scriptFile)
| at MetaBuilders.WebControls.DualList.RegisterScriptLibrary()
| at MetaBuilders.WebControls.DualList.RegisterScript()
| at MetaBuilders.WebControls.DualList.OnPreRender(EventArgs e)
| at System.Web.UI.Control.PreRenderRecursiveInternal()
| at System.Web.UI.Control.PreRenderRecursiveInternal()
| at System.Web.UI.Control.PreRenderRecursiveInternal()
| at System.Web.UI.Page.ProcessRequestMain(Boolean
| includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
|
|
| The function where the error occurs is below and the line causing the
error
| reads "Object handler = findMapping.Invoke..."
|
| I'm a bit lost because I'm having trouble understanding exactly what this
| function does and why all of sudden it does not work under 2.0 but works
fine
| under 1.1.
|
| Any ideas or suggestions? I'm also at the point of throwning the thing
| completely out and creating my own. The metabuilders site seems to be
| basically dead for the past year so I'm out of luck getting help there.
|
| private static Boolean DetermineIsRegistered() {
| Object handlerMap =
| System.Web.HttpContext.GetAppConfig("system.web/httpHandlers");
| if ( handlerMap == null ) {
| return false;
| }
|
| MethodInfo findMapping = handlerMap.GetType().GetMethod("FindMapping",
| BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic );
| if ( findMapping == null ) {
| return false;
| }
|
| Object handler = findMapping.Invoke(handlerMap, new Object[] { "GET",
| handlerName } );
| if ( handler == null ) {
| return false;
| }
|
| PropertyInfo handlerPathProperty =
handler.GetType().GetProperty("Path",
| BindingFlags.NonPublic | BindingFlags.Instance );
| if ( handlerPathProperty == null ) {
| return false;
| }
|
| String handlerPath = handlerPathProperty.GetValue(handler,null) as
String;
| if ( handlerPath == null || handlerPath != handlerName ) {
| return false;
| }
|
| return true;
| }
|
.
- Follow-Ups:
- References:
- Prev by Date: RE: How to Provide a list of DataSources and Fields at design time
- Next by Date: Re: Dynamically adding custom control
- Previous by thread: RE: Object of type 'System.String' cannot be converted to type 'System
- Next by thread: RE: Object of type 'System.String' cannot be converted to type 'Sy
- Index(es):
Relevant Pages
|