Click here to Skip to main content
15,890,282 members
Home / Discussions / C#
   

C#

 
GeneralRe: how can i get the root folder for my program after setup Pin
ahmedhassan9617-Sep-08 12:21
ahmedhassan9617-Sep-08 12:21 
QuestionMigration from C# to java Pin
Monika Patel17-Sep-08 10:41
Monika Patel17-Sep-08 10:41 
QuestionHow to use rtf table of contents in RichTextBox Pin
panoskatws17-Sep-08 9:45
panoskatws17-Sep-08 9:45 
AnswerRe: How to use rtf table of contents in RichTextBox Pin
Dave Kreskowiak17-Sep-08 10:31
mveDave Kreskowiak17-Sep-08 10:31 
QuestionCodepages and character encoding Pin
Miszou17-Sep-08 9:09
Miszou17-Sep-08 9:09 
QuestionBuilding a testing class Pin
OneLessJpeg17-Sep-08 9:02
OneLessJpeg17-Sep-08 9:02 
AnswerRe: Building a testing class Pin
Pete O'Hanlon17-Sep-08 9:07
mvePete O'Hanlon17-Sep-08 9:07 
QuestionDetermining type compatiblity Pin
Clive D. Pottinger17-Sep-08 8:27
Clive D. Pottinger17-Sep-08 8:27 
Hi folks! I've coded myself into another corner... again! I need a guru.

This time, I'm writing code that checks that the parameter list for a call to a method is valid. Why? Because I am dynamically calling various methods with parameters read from an XML file. Why? Don't ask... looooong story.

Breifly, a call to my routine might look like
StandardTest.PerformDALvsDBTest(
  "DALRoutines",    // the class that will contain the method to call
  "InsertCustomer", // the method to be called
  new object[] { 
    DateTime.Parse(parm0), 
    parm1, 
    Int32.Parse(parm2)
  }
);


Okay. So my routine goes through a bunch of checks and finally obtains a reference to the method to be called (MethodInfo.methodRef). The call to the method will be made using
methodRef.Invoke(null, myBindings, null, Params, null);

But first, I must make sure that all the items in the object[] Params are of the right type. To do that I loop through methodRef.GetParameters() and check each one against each Params[index].GetType().
If there are the correct number of parameters, and they are all of the correct type, etc, then I will perform the Invoke(), otherwise, I throw an error indicating the method name, the parameter, the expected type and the type that was used:
e.g. "The System.Type for parameter #0 in the parameter list for the method [DALRoutines.InsertCustomer] is System.DateTime; System.TimeSpan was expected".

So, here is my problem:
I have a method that expects a parameter to be an Int32. However, when the value is passed in the object[] Params, it seems to be changed to Int16 (even if I specifically indicate that it is Int32 as above - I assume that it is because it is a small value). When my routine starts comparing parameter types it spits out an error saying it was passed an Int16 when it expects an Int32. The kicker is that the call to Invoke() would still work if it was made - .NET does not seem to mind and handles the conversion inherently. But I can't find a way to tell that it would work - all I can see is that the two types are different.

I have tried investigating different ways to tell if the types are compatible (including Type.IsSubclassOf() and Type.IsAssignableFrom()) but I can't seem to find anything that will let me know that an Int16 can be used as the value for an Int32 parameter.

Does anyone know a way to do this?

Clive Pottinger
Victoria, BC

AnswerRe: Determining type compatiblity Pin
Pete O'Hanlon17-Sep-08 9:11
mvePete O'Hanlon17-Sep-08 9:11 
AnswerRe: Determining type compatiblity Pin
User 665817-Sep-08 9:23
User 665817-Sep-08 9:23 
GeneralRe: Determining type compatiblity Pin
Clive D. Pottinger17-Sep-08 9:51
Clive D. Pottinger17-Sep-08 9:51 
QuestionreSetting old values Pin
netJP12L17-Sep-08 7:30
netJP12L17-Sep-08 7:30 
AnswerRe: reSetting old values Pin
Jimmanuel17-Sep-08 9:26
Jimmanuel17-Sep-08 9:26 
Questionbrush problem... Pin
Sajjad Izadi17-Sep-08 6:30
Sajjad Izadi17-Sep-08 6:30 
AnswerRe: brush problem... Pin
Syed Mehroz Alam17-Sep-08 7:04
Syed Mehroz Alam17-Sep-08 7:04 
GeneralRe: brush problem... Pin
Sajjad Izadi17-Sep-08 7:17
Sajjad Izadi17-Sep-08 7:17 
AnswerRe: brush problem... Pin
Harvey Saayman17-Sep-08 8:05
Harvey Saayman17-Sep-08 8:05 
Joke[ot] Pin
Guffa17-Sep-08 8:36
Guffa17-Sep-08 8:36 
GeneralRe: [ot] Pin
Harvey Saayman17-Sep-08 8:52
Harvey Saayman17-Sep-08 8:52 
Questionformating numbers from strings Pin
brsecu17-Sep-08 4:55
brsecu17-Sep-08 4:55 
AnswerRe: formating numbers from strings PinPopular
Scott Dorman17-Sep-08 5:06
professionalScott Dorman17-Sep-08 5:06 
AnswerRe: formating numbers from strings Pin
Blue_Boy17-Sep-08 9:31
Blue_Boy17-Sep-08 9:31 
QuestionSoftware Design.. Whats your approach? Pin
JPWheeler17-Sep-08 3:53
JPWheeler17-Sep-08 3:53 
AnswerRe: Software Design.. Whats your approach? Pin
Scott Dorman17-Sep-08 4:41
professionalScott Dorman17-Sep-08 4:41 
AnswerRe: Software Design.. Whats your approach? Pin
PIEBALDconsult17-Sep-08 6:34
mvePIEBALDconsult17-Sep-08 6:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.