public virtual object CreateInstance() { if (ConverterType == null) { return(null); } if (ChoGuard.IsArgumentNotNullOrEmpty(Parameters) && ChoType.HasConstructor(ConverterType, Parameters)) { return(ChoType.CreateInstance(ConverterType, Parameters)); } else if (ChoType.HasConstructor(ConverterType, new object[] { String.Empty })) { return(ChoType.CreateInstance(ConverterType, new object[] { Parameters != null && Parameters.Length > 0 ? Parameters[0] : String.Empty })); } else { return(Activator.CreateInstance(ConverterType)); } }