コード例 #1
0
        private static void RemoveUserFromSharePointGroup(NameEntity ne, SPSecurableObject spso)
        {
            SPWeb web = null;

            if (spso is SPWeb)
            {
                web = spso as SPWeb;
            }
            else if (spso is SPList)
            {
                web = (spso as SPList).ParentWeb;
            }
            else if (spso is SPListItem)
            {
                web = (spso as SPListItem).ParentList.ParentWeb;
            }

            if (web != null)
            {
                bool old = web.AllowUnsafeUpdates;
                web.AllowUnsafeUpdates = true;
                web.Update();

                web.SiteGroups[ne.ContainerSPGroup].Users.Remove(ne.Principal.LoginName);

                web.AllowUnsafeUpdates = old;
                web.Update();
            }
        }
コード例 #2
0
        protected override void DefWndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
            // 接收 CopyData 消息,读取发送过来的数据
            case WM_COPYDATA:
                COPYDATASTRUCT cds    = new COPYDATASTRUCT();
                Type           mytype = cds.GetType();
                cds = (COPYDATASTRUCT)m.GetLParam(mytype);
                uint   flag = (uint)(cds.dwData);
                byte[] bt   = new byte[cds.cbData];
                Marshal.Copy(cds.lpData, bt, 0, bt.Length);
                object     obj        = SerializeUtil.Deserialize(bt);
                NameEntity nameEntity = (NameEntity)obj;
                if (OnReceiveBytes != null)
                {
                    OnReceiveBytes(this, flag, bt);
                }
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
コード例 #3
0
 public static void AddErrorIfAllNamesEmpty(this Controller item, NameEntity target)
 {
     if (target.IsAllNamesEmpty())
     {
         item.ModelState.AddModelError("", "中文名和英文名不允许同时为空");
     }
 }
コード例 #4
0
ファイル: main.cs プロジェクト: lpwwpl/testCSharp
        static void TestComplexDllByProcess()
        {
            ShareMemory sm = new ShareMemory();

            sm.initRead();
            sm.initWrite();

            //Create a new process info structure.
            ProcessStartInfo pInfo = new ProcessStartInfo();

            //Set the file name member of the process info structure.
            pInfo.FileName = "testLeakConsoleExe.exe";
            //Start the process.
            Process p = Process.Start(pInfo);

            NameEntity nameEntity = new NameEntity();

            nameEntity._type = NameEntityType.OrganizationName;
            // ShareMemory.WriteToMemory((uint)Marshal.SizeOf(nameEntity), nameEntity, "Global\\ShareMemory");
            Message msg = new Message();

            sm.WriteToMemory((uint)Marshal.SizeOf(msg), msg);
            object obj = (NameEntity)sm.ReadFromMemoryToObj((uint)Marshal.SizeOf(nameEntity), typeof(NameEntity));

            if (obj == null)
            {
                return;
            }
        }
コード例 #5
0
 public async Task<NameResponse> ValidateNameAsync(string name)
 {
     var entity = new NameEntity()
     {
         name = name
     };
     var result = await _webManager.PostData(new Uri(Endpoints.ValidateName), null, new StringContent(JsonConvert.SerializeObject(entity), Encoding.UTF8, "application/json"));
     return JsonConvert.DeserializeObject<NameResponse>(result.ResultJson);
 }
コード例 #6
0
ファイル: main.cs プロジェクト: lpwwpl/testCSharp
        //not success
        static void TestComplexDllReflection()
        {
            Console.WriteLine("Complex:Use DllLoadLibrary&Reflection,");
            PrintCurrentProcessMemUsage();
            UseDllByReflection reflectFun = new UseDllByReflection();

            reflectFun.LoadDll("testCppDll.dll");
            reflectFun.LoadFun("CreateNameEntityByTypeByReturn");

            //NameEntity a = new NameEntity();
            int a = 0;

            unsafe
            {
                object[]   Parameters     = new object[] { a };
                Type[]     ParameterTypes = new Type[] { typeof(int) };
                ModePass[] themode        = new ModePass[] { ModePass.ByRef };
                Type       Type_Return    = typeof(IntPtr);
                string     methodName1    = "CreateNameEntityByTypeByReturn";
                object     ret            = reflectFun.Invoke(methodName1, Parameters, ParameterTypes, themode, Type_Return);
                IntPtr     retPtr         = (IntPtr)ret;
                NameEntity retStruct      = (NameEntity)Marshal.PtrToStructure(retPtr, typeof(NameEntity));
                //在非托管代码中使用CoTaskMemAlloc分配的内存,可以使用Marshal.FreeCoTaskMem方法释放
                Marshal.FreeCoTaskMem(retPtr);
                Console.WriteLine("非托管函数返回的结构体数据:double = {0:f6}, int = {1}",
                                  retStruct._score, retStruct._highlightLength);
            }
            reflectFun.UnLoadDll();

            reflectFun.LoadDll("testCppDll.dll");
            reflectFun.LoadFun("CreateNameEntityByType");

            NameEntity nameEntity = new NameEntity();
            IntPtr     paraPtr    = Marshal.AllocHGlobal(Marshal.SizeOf(nameEntity));

            Marshal.StructureToPtr(nameEntity, paraPtr, false);
            uint b = 0;

            unsafe
            {
                object[]   Parameters     = new object[] { paraPtr, b };
                Type[]     ParameterTypes = new Type[] { typeof(IntPtr), typeof(uint) };
                ModePass[] themode        = new ModePass[] { ModePass.ByRef, ModePass.ByValue };
                Type       Type_Return    = typeof(bool);
                string     methodName2    = "CreateNameEntityByType";
                object     ret            = reflectFun.Invoke(methodName2, Parameters, ParameterTypes, themode, Type_Return);
                NameEntity retStruct      = (NameEntity)Marshal.PtrToStructure(paraPtr, typeof(NameEntity));
                //在非托管代码中使用CoTaskMemAlloc分配的内存,可以使用Marshal.FreeCoTaskMem方法释放
                Marshal.FreeCoTaskMem(paraPtr);
                Console.WriteLine("非托管函数返回的结构体数据:double = {0:f6}, int = {1}",
                                  retStruct._score, retStruct._highlightLength);
            }
            reflectFun.UnLoadDll();
            PrintCurrentProcessMemUsage();
            Console.WriteLine("Complex: End");
        }
コード例 #7
0
        public async Task <NameResponse> ValidateNameAsync(string name)
        {
            var entity = new NameEntity()
            {
                name = name
            };
            var result = await _webManager.PostData(new Uri(Endpoints.ValidateName), null, new StringContent(JsonConvert.SerializeObject(entity), Encoding.UTF8, "application/json"));

            return(JsonConvert.DeserializeObject <NameResponse>(result.ResultJson));
        }
コード例 #8
0
        internal static NameEntity ToDataObject(this Name serviceModel)
        {
            NameEntity dataObject = new NameEntity();

            dataObject.LanguageId = serviceModel.LanguageId;
            dataObject.Value      = serviceModel.Value;
            dataObject.Adjective  = serviceModel.Adjective;
            dataObject.Comment    = serviceModel.Comment;

            return(dataObject);
        }
コード例 #9
0
        internal static Name ToServiceModel(this NameEntity dataObject)
        {
            Name serviceModel = new Name();

            serviceModel.LanguageId = dataObject.LanguageId;
            serviceModel.Value      = dataObject.Value;
            serviceModel.Adjective  = dataObject.Adjective;
            serviceModel.Comment    = dataObject.Comment;

            return(serviceModel);
        }
コード例 #10
0
        private Guid GetParentGuid(NameEntity namedEntity)
        {
            Guid result = namedEntity.Guid;

            /*if (namedEntity is IPartiallyOverridableEntity overridable && overridable.IsPartiallyOverridden)
             *  result = overridable.OverriddenVersionId.Value;
             * else if (namedEntity is IOverridableEntity overridableEntity && overridableEntity.IsOverridden)
             *  result = overridableEntity.OverriddenVersionId.Value;
             * else if (namedEntity.ParentEntity != null && namedEntity.ParentEntity.ParentEntity != null && HasParentTagContainer(namedEntity))
             *  result = namedEntity.ParentEntity.ParentEntity.Guid;*/
            return(result);
        }
コード例 #11
0
ファイル: main.cs プロジェクト: lpwwpl/testCSharp
        static void TestComplexDllLoadLibrary()
        {
            Console.WriteLine("Complex:Use DllLoadLibrary, ");
            PrintCurrentProcessMemUsage();
            IntPtr hModule = Win32.LoadLibrary("testCppDll.dll");
            int    error   = Marshal.GetLastWin32Error();
            //NameEntityType type = NameEntityType.OrganizationName;
            int type = 0;

            if (hModule == IntPtr.Zero)
            {
                return;
            }
            {
                //test findNames func
                CreateNameEntitysByType createNameEntitys = (CreateNameEntitysByType)UseComplexDllByLoadLibrary.GetFunctionAddress(hModule, "CreateNameEntitysByType", typeof(CreateNameEntitysByType));
                string            text      = "";
                IntPtr            arrayPtr  = IntPtr.Zero;
                uint              arraySize = 0;
                List <NameEntity> nameList  = new List <NameEntity>();
                if (createNameEntitys(text, out arrayPtr, ref arraySize, type))
                {
                    NameEntity[] names = new NameEntity[arraySize];
                    IntPtr       cur   = arrayPtr;
                    for (int i = 0; i < arraySize; i++)
                    {
                        names[i] = new NameEntity();
                        //cur->names, free cur
                        Marshal.PtrToStructure(cur, names[i]);
                        Marshal.DestroyStructure(cur, typeof(NameEntity));
                        cur = (IntPtr)((int)cur + Marshal.SizeOf(names[i]));
                    }
                    Marshal.FreeCoTaskMem(arrayPtr);
                    nameList.AddRange(names);
                }

                //createName
                CreateNameEntityByType createNameEntity = (CreateNameEntityByType)UseComplexDllByLoadLibrary.GetFunctionAddress(hModule, "CreateNameEntityByType", typeof(CreateNameEntityByType));
                IntPtr namePtr = IntPtr.Zero;
                if (createNameEntity(out namePtr, type))
                {
                    NameEntity retStruct = (NameEntity)Marshal.PtrToStructure(namePtr, typeof(NameEntity));
                    // 在非托管代码中使用CoTaskMemAlloc分配的内存,可以使用Marshal.FreeCoTaskMem方法释放
                    Marshal.FreeCoTaskMem(namePtr);
                    Console.WriteLine("非托管函数返回的结构体数据:double = {0:f6}, int = {1}",
                                      retStruct._score, retStruct._highlightLength);
                }
            }
            Win32.FreeLibrary(hModule);
            PrintCurrentProcessMemUsage();
            Console.WriteLine("Complex: Test END\n");
        }
コード例 #12
0
        public string GetReferenceInternal(IBaseEntity entity)
        {
            string result = string.Empty;

            if (entity != null)
            {
                string     particle    = TypeParticle(entity);
                NameEntity namedEntity = entity as NameEntity;
                Guid       fileGuid    = GetParentGuid(namedEntity);
                result = string.Format(CultureInfo.InvariantCulture, "{0}{3}{1}{3}{{{2}}}.{4}", particle, NormalizeName(namedEntity?.Name), fileGuid, Separator, FilesConfig.EasyBPartialExtensionFile);
            }
            return(result);
        }
コード例 #13
0
        public static string GetNameEntityColor_Tencent(string entityEn)
        {
            NameEntity ne = JsonConvert.DeserializeObject <NameEntity>((Application.Current as App).jsonNamedEntityTag_Tencent);

            for (int i = 0; i <= ne.en.Count - 1; i++)
            {
                if (entityEn == ne.en[i])
                {
                    return(ne.bgcolor[i]);
                }
            }

            return("");
        }
コード例 #14
0
        public void Initialize()
        {
            NameHandler.OnSetNameAsObservable()
            .Subscribe(name =>
            {
                Set(name);
                SetPhoton(name);
                Render(name);
            })
            .AddTo(Disposable);

            Render(NameEntity.Load());
            SetPhoton(NameEntity.Load());
        }
コード例 #15
0
ファイル: ShareMemory.cs プロジェクト: lpwwpl/testCSharp
        public int initRead()
        {
            m_hReadEvent = new Semaphore(0, 1, GLOBAL_EVENT_OUT_NAME);//new ProcessSemaphore(GLOBAL_EVENT_OUT_NAME, 0, 1);
            IntPtr     hMappingHandle = IntPtr.Zero;
            IntPtr     hVoid          = IntPtr.Zero;
            uint       i          = Win32.GetLastError();
            NameEntity nameEntity = new NameEntity();

            hMappingHandle = Win32.CreateFileMapping(INVALID_HANDLE_VALUE, IntPtr.Zero, (uint)PAGE_READWRITE, 0, (uint)Marshal.SizeOf(nameEntity), GLOBAL_MEMORY_OUT_NAME);
            if (hMappingHandle == IntPtr.Zero)
            {
                return(1);
            }
            return(0);
        }
コード例 #16
0
ファイル: ShareMemory.cs プロジェクト: lpwwpl/testCSharp
        public int initWrite()
        {
            IntPtr hMappingHandle = IntPtr.Zero;
            IntPtr hVoid          = IntPtr.Zero;

            m_hWriteEvent[0] = new Semaphore(0, 1, GLOBAL_EVENT_IN1_NAME);
            m_hWriteEvent[1] = new Semaphore(0, 1, GLOBAL_EVENT_IN2_NAME);
            NameEntity nameEntity = new NameEntity();

            hMappingHandle = Win32.CreateFileMapping(INVALID_HANDLE_VALUE, IntPtr.Zero, (uint)PAGE_READWRITE, 0, (uint)Marshal.SizeOf(nameEntity), GLOBAL_MEMORY_IN_NAME);
            if (hMappingHandle == IntPtr.Zero)
            {
                return(1);
            }
            return(0);
        }
コード例 #17
0
        public bool CreateNameEntityByTypeByParam(int value, ref NameEntity nameEntity)
        {
            int    type    = 0;
            IntPtr hModule = Win32.LoadLibrary("testCppDll.dll");
            CreateNameEntityByTypeDelegate createNameEntity = (CreateNameEntityByTypeDelegate)UseComplexDllByLoadLibrary.GetFunctionAddress(hModule, "CreateNameEntityByType", typeof(CreateNameEntityByTypeDelegate));
            IntPtr namePtr = IntPtr.Zero;

            if (createNameEntity(out namePtr, type))
            {
                nameEntity = (NameEntity)Marshal.PtrToStructure(namePtr, typeof(NameEntity));
                // 在非托管代码中使用CoTaskMemAlloc分配的内存,可以使用Marshal.FreeCoTaskMem方法释放
                Marshal.FreeCoTaskMem(namePtr);
                Console.WriteLine("非托管函数返回的结构体数据:double = {0:f6}, int = {1}",
                                  nameEntity._score, nameEntity._highlightLength);
            }
            Win32.FreeLibrary(hModule);
            return(true);
        }
コード例 #18
0
 public void DoTest()
 {
     using (var client1 = WcfServiceClient <INameEntityService> .Create("test1"))
     {
         try
         {
             int        type       = 0;
             NameEntity nameEntity = new NameEntity();
             bool       ret        = client1.Instance.CreateNameEntityByTypeByParam(type, ref nameEntity);
             Console.WriteLine("{0}", ret);
         }
         catch (FaultException <WcfServiceFault> fault)
         {
             Console.WriteLine(fault.ToString());
         }
         catch (Exception e) //handles exceptions not in wcf communication
         {
             Console.WriteLine(e.ToString());
         }
     }
 }
コード例 #19
0
ファイル: main.cs プロジェクト: lpwwpl/testCSharp
        static void TestComplexDllStatic()
        {
            Console.WriteLine("Complex: Use StaticDllImport,");
            PrintCurrentProcessMemUsage();
            UseComplexDllByStatic instanceUseComplexDllByStatic = new UseComplexDllByStatic();

            bool isInit = instanceUseComplexDllByStatic.Initialize(@".\data");

            if (isInit)
            {
                List <NameEntity> nameResults = new List <NameEntity>();
                string            text        = "";
                bool isSuccessFindNames       = instanceUseComplexDllByStatic.CreateNameEntitys(text, ref nameResults);

                NameEntity nameEntity          = new NameEntity();
                bool       isSuccessCreateName = instanceUseComplexDllByStatic.CreateNameEntity(ref nameEntity);
            }
            ClearMemory();
            PrintCurrentProcessMemUsage();
            Console.WriteLine("Complex: Test END\n");
        }
コード例 #20
0
        public void TestComplexLoadLibrary()
        {
            IntPtr hModule = Win32.LoadLibrary("testCppDll.dll");
            int    error   = Marshal.GetLastWin32Error();

            //Console.WriteLine("The Last Win32 Error was: " + error);
            if (hModule == IntPtr.Zero)
            {
                return;
            }
            unsafe
            {
                InitFunc initFunc = (InitFunc)UseDllByLoadLibrary.GetFunctionAddress(hModule, "Initialize", typeof(InitFunc));
                bool     isInit   = initFunc("");
                if (isInit)
                {
                    string    text          = "";
                    FindNames findNamesFunc = (FindNames)UseDllByLoadLibrary.GetFunctionAddress(hModule, "FindNames", typeof(FindNames));
                    IntPtr    arrayPtr      = IntPtr.Zero;
                    uint      arraySize;
                    if (findNamesFunc(text, out arrayPtr, out arraySize))
                    {
                        NameEntity[] names = new NameEntity[arraySize];
                        IntPtr       cur   = arrayPtr;
                        for (int i = 0; i < arraySize; i++)
                        {
                            names[i] = new NameEntity();
                            Marshal.PtrToStructure(cur, names[i]);
                            Marshal.DestroyStructure(cur, typeof(NameEntity));
                            cur = (IntPtr)((int)cur + Marshal.SizeOf(names[i]));
                        }
                        Assert.AreEqual(names.Count(), arraySize);
                    }
                    Assert.AreNotEqual(arrayPtr, IntPtr.Zero);
                    Marshal.FreeCoTaskMem(arrayPtr);
                }
            }
            Win32.FreeLibrary(hModule);
        }
コード例 #21
0
ファイル: main.cs プロジェクト: lpwwpl/testCSharp
        static void TestUnloadDllBySecondAppDomain()
        {
            Console.WriteLine("Complex:Use SecondAppDomain");
            PrintCurrentProcessMemUsage();
            using (AppDomainDynamicLoader domainLoader = new AppDomainDynamicLoader(@"testUseDllByCSharp.dll"))
            {
                //construct param
                NameEntity nameEntityTemp = new NameEntity();
                IntPtr     structPtr      = Marshal.AllocHGlobal(Marshal.SizeOf(nameEntityTemp));
                Marshal.StructureToPtr(nameEntityTemp, structPtr, false);

                object[] Parameters = new object[] { structPtr };
                //appdomain use SetData And GetData
                domainLoader.InvokeMethod("testUseDllByCSharp.UseComplexDllByLoadLibrary", "TestComplexDllLoadLibraryByParam", Parameters);
                NameEntity nameEntity = domainLoader.appDomain.GetData("createNameEntity") as NameEntity;

                //review param
                NameEntity nameEntityTempReview = (NameEntity)Marshal.PtrToStructure(structPtr, typeof(NameEntity));
                Marshal.FreeHGlobal(structPtr);
            }
            PrintCurrentProcessMemUsage();
            Console.WriteLine("Complex:End");
        }
コード例 #22
0
 private void Set(string name)
 => NameEntity.Save(name);
コード例 #23
0
 static void AppendName(StringBuilder sb, NameEntity entity)
 {
     AppendValues(sb, entity.IsSystemEntity() ? entity.GetType().ToString().Replace("Geotab.Checkmate.ObjectModel.", "").Replace(",", " ") : entity.Name.Replace(",", " "));
 }
コード例 #24
0
ファイル: CRF.cs プロジェクト: DoraemonHC/MicroblogCalendar
        /// <summary>
        /// 从CRF推测结果获取命名实体
        /// </summary>
        /// <param name="path">data/crfResultDoc.txt</param>
        /// <returns></returns>
        public static List <NameEntity> GetNameEntityFromFile(string path)
        {
            StreamReader      reader   = File.OpenText(path);
            string            line     = null;                    //每一行文本
            StringBuilder     sb       = new StringBuilder();     //用于连接第一列的实体
            string            lastType = "O";                     //上一行的实体类别
            List <NameEntity> list     = new List <NameEntity>(); //包含命名实体的数组

            while ((line = reader.ReadLine()) != null)
            {
                if (string.IsNullOrEmpty(line))
                {
                    continue;//略过空行
                }
                else
                {
                    string[] wordTag = line.Split();
                    //遇到实体首部,可能前一个是实体中部(根据缓冲区有无字词判断),也可能是非实体
                    if (wordTag.Last().StartsWith("B-"))
                    {
                        //把上一个结果存进去,并清除缓存,并追加当前行
                        if (sb.Length != 0)
                        {
                            NameEntity ne = new NameEntity();
                            ne.Word = sb.ToString();
                            ne.Type = lastType.Substring(2);
                            list.Add(ne);
                            sb.Clear();
                            sb.Append(wordTag.First());
                        }
                        else
                        {
                            sb.Append(wordTag.First());
                        }
                    }
                    //遇到实体中部,只要继续追加字即可,因为不知道后面还有没有实体中部
                    else if (wordTag.Last().StartsWith("I-"))
                    {
                        sb.Append(wordTag.First());
                    }
                    //遇到非实体,可能是前一个实体结束,或者前一个也是非实体
                    else
                    {
                        if (lastType.StartsWith("I-") || lastType.StartsWith("B-"))
                        {
                            NameEntity ne = new NameEntity();
                            ne.Word = sb.ToString();
                            ne.Type = lastType.Substring(2);
                            list.Add(ne);
                            sb.Clear();
                        }
                        //若是B无效,若是O不管
                        //本来b后面是O隔了个I是无效的,但是可能是单个实体(只有头部)
                    }
                    //更新上个状态为这一行,然后继续下一行读取
                    lastType = wordTag.Last();
                }
            }
            reader.Close();
            return(list);
        }