Code Comments

Programming Forum and web based access to our favorite programming groups.
For Programmers: Free Programming Magazines | New: Database administration forum
Registration is free! Edit your profileCalendarFind other membersFrequently Asked QuestionsSearch -> 
Post New Thread











Thread
Author

Object of type 'System.String' cannot be converted to type 'System
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.DetermineIsRegiste
re
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 fin
e
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;
}

Report this thread to moderator Post Follow-up to this message
Old Post
Robert
11-19-05 12:03 AM


RE: Object of type 'System.String' cannot be converted to type 'System
Hi,

We have reviewed this issue and are currently researching on it. We will
update you ASAP. Thanks for your patience!

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."


Report this thread to moderator Post Follow-up to this message
Old Post
Kevin Yu [MSFT]
11-19-05 08:57 AM


RE: Object of type 'System.String' cannot be converted to type 'System
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: examnotes <robertv@noemail.nospam>
| 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@microsoft.com>
| 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;
| 		}
|


Report this thread to moderator Post Follow-up to this message
Old Post
Steven Cheng[MSFT]
11-19-05 11:59 PM


Re: Object of type 'System.String' cannot be converted to type 'System
Hi Robert,
I just came across your post as I was looking for a solution for the same ex
act issue using metabuilder's DualList in .Net 2.0.  I know it's a bit late 
since you posted this months ago but I have a solution to it that seems to b
e working.  Let me know if you're still interested and I'll post the changes
 to sourcecode provided with the control that got it working for me (was onl
y 2 lines that had to change).
Thanks,
Alex


quote:
Originally posted by Robert 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.DetermineIsRegiste re 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 fin e 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; }

Report this thread to moderator Post Follow-up to this message
Old Post
alcsharp
04-19-06 07:46 PM


Re: Object of type 'System.String' cannot be converted to type 'System
alcsharp =E5=AF=AB=E9=81=93=EF=BC=9A

> Hi Robert,
> I just came across your post as I was looking for a solution for the
> same exact issue using metabuilder's DualList in .Net 2.0.  I know it's
> a bit late since you posted this months ago but I have a solution to it
> that seems to be working.  Let me know if you're still interested and
> I'll post the changes to sourcecode provided with the control that got
> it working for me (was only 2 lines that had to change).
> Thanks,
> Alex

yea ~ I'd like to know , please send me a copy :D

Miz


Report this thread to moderator Post Follow-up to this message
Old Post
阿利
04-20-06 09:05 AM


Re: Re: Object of type 'System.String' cannot be converted to type 'System
Ok.. sorry didn't post code orginally but I was on another workstation than 
the one that had the code.

In DynamicListBoxResourceHandler.cs...
Change the line that reads: (line 101 in my code)

Object handlerMap = System.Web.HttpContext.GetAppConfig("system.web/httpHand
lers");

TO

Object handlerMap = System.Web.HttpContext.GetAppConfig("httpHandlers");

----------------------------------------------
Then in DynamicListBox.js...
Change line that reads: (line 25 in my code)

list.Tracker = DynamicListBox_FindControl( list.name + ":itemTracker" );

TO

list.Tracker = DynamicListBox_FindControl( list.name + "$itemTracker" );


That's it.  That seemed to do it for me.

Report this thread to moderator Post Follow-up to this message
Old Post
alcsharp
04-21-06 08:08 PM


Re: Re: Re: Object of type 'System.String' cannot be converted to type 'System
I did as per your saying .. now i get a Dll file. but when i put the dll fil
e in the bin directory i get the following error

Value cannot be null,Parameter name:stream

Please let me know the reason for the same.

Thanks and Regards
Biju

Report this thread to moderator Post Follow-up to this message
Old Post
biju.mulakavaluppil
05-17-06 08:45 AM


Object of type 'System.String' cannot be converted to type 'System.Web.VirtualPath'
I'm trying to do the same conversion, but I cannot even finish the build. Th
e error I'm receiving while building is: 

quote:
Cryptographic failure while signing assembly The key container name 'metabuilders.com' does not exist'
Alcsharp, is it an idea to maybe return your ASP.Net conversion to Andy Smit h? Otherwise I'd like to hear from you as well :) Regards, Robert (another one)

Report this thread to moderator Post Follow-up to this message
Old Post
Atreyu
08-22-06 02:01 PM


Re: Object of type 'System.String' cannot be converted to type 'System.Web.VirtualPat
I really liked this control and ran into the same issues with ASP.net 2.0. I
 summerized some fixes I found and posted to my blog:
http://www.pressingtheredbutton.com...lders_duallist/

Report this thread to moderator Post Follow-up to this message
Old Post
JimJty
05-06-07 05:46 AM


Re: Re: Object of type 'System.String' cannot be converted to type 'System.Web.VirtualPat
Jim's changes did help, but the troublesome "Object of type 'System.String' 
cannot be converted
to type 'System.Web.VirtualPath'" still exists after these changes in Dot Ne
t v2.0.

After debugging the code in detail, I realized that this is due to the use o
f undocumented functions in the 'DetermineIsRegistered'. I am referring to t
he use of 'FindMapping' which is not documented anywhere in MSDN and which i
s resulting on this error. Getting rid of this error requires a simple rewri
te of this function as follows

private static Boolean DetermineIsRegistered() 
{
    HttpHandlersSection handlerMap =   WebConfigurationManager.GetWebApplica
tionSection("system.web/httpHandlers")as HttpHandlersSection;
    
    if (handlerMap == null)
        return false;

    foreach (HttpHandlerAction handler in handlerMap.Handlers)
    {
        if (handler.Path == handlerName)
        {
            return true;
        }
    }
			
    return false;
}

Hope this helps and let me know if it doesn't.

Abhijit Talukdar

Report this thread to moderator Post Follow-up to this message
Old Post
atalukdar
06-07-07 08:06 AM


Sponsored Links




Last Thread Next Thread Next
Search this forum -> 
Post New Thread

ASP .NET Building Controls archive

Show a Printable Version Send to friend Email This Page to Someone! subscribe to this thread Receive updates to this thread
Computer Consultants
Programming Jobs
Visual Basic Controls
SQL Server Programming
Webservices
Java Security
Visual Studio
C# Programming
Visual J++
Software engineering
Open source Software
Perl Programming
PHP Programming
ASP Programming
ASP .NET Programming
Visual Basic Programming
Windows Scripting Host
Java Programming
Java Help
Java Beans
VBScript
Cobol
MAC Applications
Unix Programming
Forum Jump:
All times are GMT. The time now is 10:55 AM.

 
Free MCSE Braindumps | Real Estate Topics

Programming forum archive

Copyrights CodeComments.com 2004 - 2006

Powered by vBulletin Copyright 2000-2006 Jelsoft Enterprises Limited.