public SharingClass GetInstance(int platformId) { string assemblyFile = null; string typeName = null; string methodName = null; string dir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + @"\SharingLibraries\"; string resData = SharingLibraries.ResourceManager.GetString("n_" + platformId); SharingLibraryInfo myDeserializedObj = (SharingLibraryInfo)Newtonsoft.Json.JsonConvert.DeserializeObject(resData, typeof(SharingLibraryInfo)); assemblyFile = dir + myDeserializedObj.Dll; typeName = myDeserializedObj.Type; methodName = myDeserializedObj.Method; Assembly assembly = Assembly.LoadFrom(assemblyFile); //"MyDll.dll" Type type = assembly.GetType(typeName); //"MyType" object instance = Activator.CreateInstance(type); SharingClass sharingClass = new SharingClass() { Instance = instance, MethodName = methodName }; return(sharingClass); }
public void Share(int platformId, string text) { //1 facebook //2 twitter //3 vk //4 linkedin string dir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + @"\SharingLibraries\"; string resData = SharingLibraries.ResourceManager.GetString($"n_{ platformId }"); SharingLibraryInfo libraryInfo = (SharingLibraryInfo)JsonConvert.DeserializeObject(resData, typeof(SharingLibraryInfo)); Assembly assembly = Assembly.LoadFrom(dir + libraryInfo.Dll); //"MyDll.dll" Type type = assembly.GetType(libraryInfo.Type); //"MyType" object instance = Activator.CreateInstance(type); MethodInfo method = (instance.GetType()).GetMethod(libraryInfo.Method); method.Invoke(instance, new object[] { text }); }