KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to verify whether a variable that is passed can be converted to a specific type. I have tried the following but can't get it to compile so I assume I'm going about it the wrong way (I'm new to C#) string myType = "System.Int32"; string myValue = "42"; bool canBeCast = false; try { // try to convert the value to it's intended type to see if it's valid. var result = (Type.GetType(typeString))dataValue; canBeCast = true; } catch { canBeCast = false; } I'm basically trying to avoid a massive switch statement along the lines of switch(myType){ case "System.Int32": try { var convertedValue = Convert.ToInt32(myValue); } catch (Exception) { canBeConverted = false; } break; case "another type": ... } EDIT: Ok, basically I have a db table of known input types that looks like: CREATE TABLE [dbo].[MetadataTypes] ( [typeName] VARCHAR (50) NOT NULL, [dataType] VARCHAR (50) NOT NULL, [typeRegex] VARCHAR (255) NULL ); which may have data such as "StartTime","System.DateTime",null "TicketId","System.String","$[Ff][0-9]{7}^" And the input to my function would be a KeyValuePair along the lines of myInput = new KeyValuePair<string,string>("StartTime","31/12/2010 12:00"); I need to check that the value of the KeyValuePair is of the correct datatype expected by the MetaDataType. EDIT FOR ANSWER: Leon got really close to the solution I finally came up with. For reference my function now looks like this: public Boolean ValidateMetadata(KeyValuePair<string, string> dataItem) { // Look for known metadata with name match MetadataType type = _repository.GetMetadataTypes().SingleOrDefault(t => t.typeName == dataItem.Key); if (type == null) {
Tags (comma-separated)
Save Edits
Cancel