Абстрактный класс наследует с помощью отражения - PullRequest
0 голосов
/ 15 февраля 2019

в 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...