в dtsearch dll есть абстрактный класс, тогда я должен получить доступ к этому абстрактному классу с помощью метода отражения. Как?в DTSearch есть абсолютный класс с именем «Источник данных».
dtIndexJob.DataSourceToIndex имеет тип «Источник данных»;Как я могу назначить это свойство динамически.
sVaultPath = "E:\\New folder";
sdtSearchAppPath = "C:\\Program Files (x86)\\dtSearch Developer\\bin\\dtSearchNetApi2.dll";
sIndexPath = "E:\\indexing";
dtSearchAssembly = Assembly.LoadFrom(sdtSearchAppPath);
dtIndexJob = dtSearchAssembly.CreateInstance("dtSearch.Engine.IndexJob");
string name = "DataSource";
string property = "DataSource";
string value = "Baz";
// Get the type contained in the name string
// object ob
Type type= dtSearchAssembly.GetType("dtSearch.Engine.DataSource");
//type = typeof()
PropertyInfo[] propInfos
= type.GetProperties(BindingFlags.Instance
| BindingFlags.Public
| BindingFlags.DeclaredOnly);
// PropertyInfo prop = type.GetProperty(property);
// Set the value of the given property on the given instance
//prop.SetValue(instance, value, null);
// dataSource = dtSearchAssembly.CreateInstance(prop.GetType().FullName);
dataSource.Folder = sVaultPath;
if (!dataSource.Rewind())
{
iRet = 0;
return iRet;
}
dtIndexJob.ActionCreate = true;
dtIndexJob.ActionAdd = true;
dtIndexJob.IndexPath = sIndexPath;
dtIndexJob.StoredFields = new System.Collections.Specialized.StringCollection();
dtIndexJob.StoredFields.Add("*");
dtIndexJob.DataSourceToIndex = dataSource;