好吧,我有一個通用的接口創建實現通用接口的類的實例
public IConfigurationValidator<T>
{
void Validate();
}
一個類實現它:
public class SMTPServerValidator : IConfigurationValidator<string>
{
public void Validate(string value)
{
if (string.IsNullOrEmpty(value))
{
throw new Exception("Value cannot be null or empty");
}
}
}
我現在想用反射創建實例SMTPServerValidator,因爲我知道該類型的AssemblyQualifiedName。
我想使用Activator.CreateInstance和鑄造的對接口... 這樣的:
IConfigurationValidator<T> validator = (IConfigurationValidator<T>)Activator.CreateInstance(typeof(SMTPServerValidator));
我不知道T是什麼....我怎麼使用反射來創建一個這個類的實例?
有是有,我處理,我離開了另一個類:
public class ConfigurationSetting<T>
{
IConfigurationValidator<T> m_Validator;
public ConfigurationSetting(IConfigurationValidator<T> validator)
{
m_Validator = validator;
}
public void Validate(T value)
{
m_Validator.Validate(value);
}
}
最後,我想創建ConfigurationSettings,需要在基於參數相應的驗證通過。
不應該的驗證方法IMPL沒有參數? – 2009-08-11 21:59:16
我改變了很多東西...我意識到我有其他問題... – CSharpAtl 2009-08-12 03:31:57