示例#1
0
        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);
        }
示例#2
0
        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 });
        }