示例#1
0
        public void GetInstanceTest()
        {
            SingleClass actual1 = SingleClass.GetInstance();
            SingleClass actual2 = SingleClass.GetInstance();
            SingleClass actual3 = SingleClass.GetInstance();
            SingleClass actual4 = SingleClass.GetInstance();
            SingleClass actual5 = SingleClass.GetInstance();

            Assert.AreEqual(actual1, actual2);
            Assert.AreEqual(actual1, actual3);
            Assert.AreEqual(actual1, actual4);
            Assert.AreEqual(actual1, actual5);
        }
示例#2
0
 /// <summary>
 /// 线程安全的获取单例实例
 /// </summary>
 /// <returns></returns>
 public static SingleClass GetInstanceAsync()
 {
     if (_instance == null)
     {
         lock (_lock)
         {
             if (_instance == null)
             {
                 _instance = new SingleClass();
             }
         }
     }
     return(_instance);
 }
示例#3
0
        public static void Used()
        {
            //获取单一实例
            SingleClass singleClass = SingleClass.GetInstance();

            Console.WriteLine("Object Create Time:" + singleClass.GetCreateTimeStamp());

            SingleClass singleClass2 = SingleClass.GetInstance();

            Console.WriteLine("Object2 Create Time:" + singleClass2.GetCreateTimeStamp());

            SingleClass singleClass3 = SingleClass.GetInstance();

            Console.WriteLine("Object3 Create Time:" + singleClass3.GetCreateTimeStamp());
        }
        public async Task ReturnsBreakingWhenClassChangesTypeDefinition()
        {
            var oldCode = new List <CodeSource>
            {
                new(SingleClass)
            };
            var newCode = new List <CodeSource>
            {
                new(SingleClass.Replace("class", "interface"))
            };

            var options = OptionsFactory.BuildOptions();

            var result = await _calculator.CalculateChanges(oldCode, newCode, options, CancellationToken.None)
                         .ConfigureAwait(false);

            result.ChangeType.Should().Be(SemVerChangeType.Breaking);
        }
示例#5
0
 /// <summary>
 /// 进程安全获取唯一实例
 /// </summary>
 /// <returns></returns>
 public static SingleClass GetInstanceProcessAsync()
 {
     if (_name.Length > 260)
     {
         _name = _name.Substring(_name.Length - 261);
     }
     try
     {
         //MutexSecurity ms = new MutexSecurity(_name, System.Security.AccessControl.AccessControlSections.Access);
         _mutex = new Mutex(true, _name, out bool res);
         if (res)
         {
             _mutex.ReleaseMutex();
             if (_instance == null)
             {
                 lock (_lock)
                 {
                     if (_instance == null)
                     {
                         _instance = new SingleClass();
                     }
                 }
             }
         }
         else
         {
             if (Mutex.TryOpenExisting(_name, out _mutex))
             {
                 //
             }
             else
             {
                 //
             }
         }
     }
     catch (Exception e)
     {
     }
     return(_instance);
 }
        public async Task EvaluatesChangeOfClassAccessModifiers(
            string oldModifiers,
            string newModifiers,
            SemVerChangeType expected)
        {
            var oldCode = new List <CodeSource>
            {
                new(SingleClass.Replace("public class MyClass", oldModifiers + " class MyClass"))
            };
            var newCode = new List <CodeSource>
            {
                new(SingleClass.Replace("public class MyClass", newModifiers + " class MyClass"))
            };

            var options = OptionsFactory.BuildOptions();

            var result = await _calculator.CalculateChanges(oldCode, newCode, options, CancellationToken.None)
                         .ConfigureAwait(false);

            result.ChangeType.Should().Be(expected);
        }
示例#7
0
文件: DB.cs 项目: snaksa/Dnevnik.NET
        public static List <SingleClass> GetClasses()
        {
            var db      = new DnevnikEntities();
            var classes = db.Classes.Where(c => c.Id > 1).OrderBy(c => c.Number).ThenBy(c => c.Letter);

            List <SingleClass> classesList = new List <SingleClass>();

            foreach (var item in classes)
            {
                SingleClass c = new SingleClass()
                {
                    Id     = item.Id,
                    Number = item.Number,
                    Letter = ConvertClassLetter(item.Letter)
                };
                classesList.Add(c);
            }

            db.Dispose();
            return(classesList);
        }
示例#8
0
        public ValuesController(IOptionsSnapshot <Configs> config, IConfiguration conf, LibClass _lib, SingleClass _single)

        {
            Config = config.Value;
            _conf  = conf;
            lib    = _lib;
            single = _single;
        }
        public void ShoudSerializeDynamicAssembly()
        {
            var ignore1 = new SingleStruct {
                MyProperty = 100
            };
            var success1 = new SingleStruct {
                MyProperty = 190
            };
            var ignore2 = new SingleClass {
                MyProperty = "Foo"
            };
            var success2 = new SingleClass {
                MyProperty = "Bar"
            };

            var ignore3 = new Multi
            {
                MyProperty0 = 99,
                MyProperty1 = "Foo",
                MyProperty2 = null,
                MyProperty4 = 100
            };


            var success3 = new Multi
            {
                MyProperty0 = 99,
                MyProperty1 = "FooFoo",
                MyProperty2 = null,
                MyProperty4 = 10000
            };

            {
                var f1 = JsonSerializer.ToJsonString(ignore1, StandardResolver.Default);
                var s1 = JsonSerializer.ToJsonString(success1, StandardResolver.Default);
                var f2 = JsonSerializer.ToJsonString(ignore2, StandardResolver.Default);
                var s2 = JsonSerializer.ToJsonString(success2, StandardResolver.Default);
                var f3 = JsonSerializer.ToJsonString(ignore3, StandardResolver.Default);
                var s3 = JsonSerializer.ToJsonString(success3, StandardResolver.Default);

                f1.Is("{}");
                s1.Is("{\"MyProperty\":190}");
                f2.Is("{}");
                s2.Is("{\"MyProperty\":\"Bar\"}");
                f3.Is("{\"MyProperty0\":99,\"MyProperty2\":null}");
                s3.Is("{\"MyProperty0\":99,\"MyProperty1\":\"FooFoo\",\"MyProperty2\":null,\"MyProperty4\":10000}");
            }
            {
                var f1 = JsonSerializer.ToJsonString(ignore1, StandardResolver.ExcludeNull);
                var s1 = JsonSerializer.ToJsonString(success1, StandardResolver.ExcludeNull);
                var f2 = JsonSerializer.ToJsonString(ignore2, StandardResolver.ExcludeNull);
                var s2 = JsonSerializer.ToJsonString(success2, StandardResolver.ExcludeNull);
                var f3 = JsonSerializer.ToJsonString(ignore3, StandardResolver.ExcludeNull);
                var s3 = JsonSerializer.ToJsonString(success3, StandardResolver.ExcludeNull);

                f1.Is("{}");
                s1.Is("{\"MyProperty\":190}");
                f2.Is("{}");
                s2.Is("{\"MyProperty\":\"Bar\"}");
                f3.Is("{\"MyProperty0\":99}");
                s3.Is("{\"MyProperty0\":99,\"MyProperty1\":\"FooFoo\",\"MyProperty4\":10000}");
            }
        }