Beispiel #1
0
        public void Test()
        {
            MyClassB original = TypeAccessor <MyClassB> .CreateInstance();

            MyClassB      serialized;
            XmlSerializer sr = new XmlSerializer(/*[a]*/ TypeAccessor <MyClassB> .Type /*[/a]*/);

            original.ValueB = "string value B";
            original.ValueMyClassA.ValueA = "string value A";
            original.MyList.Add(TypeAccessor <MyClassA> .CreateInstance());
            original.MyList.Add(TypeAccessor <MyClassC> .CreateInstance());

            using (MemoryStream stm = new MemoryStream())
            {
                sr.Serialize(stm, original);
                stm.Position = 0L;
                serialized   = (MyClassB)sr.Deserialize(stm);
            }

            Assert.That(serialized.ValueB, Is.EqualTo(original.ValueB));
            Assert.That(serialized.ValueMyClassA.ValueA, Is.EqualTo(original.ValueMyClassA.ValueA));

            Assert.AreEqual(original.MyList.Count, serialized.MyList.Count);
            Assert.That(serialized.MyList[0] is MyClassA);
            Assert.That(serialized.MyList[1] is MyClassA);
            Assert.That(serialized.MyList[1] is MyClassC);

            Assert.AreEqual(serialized.MyList[0].GetType(), TypeFactory.GetType(typeof(MyClassA)));
            Assert.AreEqual(serialized.MyList[1].GetType(), TypeFactory.GetType(typeof(MyClassC)));
        }
        public static void Main(string[] args)
        {
            // Create localizer
            IAssetBuilder       builder   = new AssetBuilder.OneBuildInstance();
            IAsset              asset     = builder.Build();
            StringLocalizerRoot localizer = new StringLocalizerRoot(asset, new CulturePolicy());

            // Install TutorialLibrary's IAssetSources
            Assembly library = typeof(MyClass).Assembly;

            builder.AddLibraryAssetSources(library).Build();

            #region Snippet
            // Install additional localization that was not available in the TutorialLibrary.
            IAssetSource assetSource = XmlLinesReader.Default.FileAssetSource("TutorialLibrary2-fi.xml");
            builder.AddSource(assetSource).Build();
            #endregion Snippet

            // Create class
            ILine <MyClass> classLocalizer = localizer.Type <MyClass>();
            MyClassB        myClass        = new MyClassB(classLocalizer);

            // Use the culture that was provided with the class library (AssetSources)
            CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("de");
            Console.WriteLine(myClass.Do());

            // Use the culture that was supplied above
            CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("fi");
            Console.WriteLine(myClass.Do());
        }
Beispiel #3
0
        public ClassObj()
        {
            Object instanceA = new MyClassA();
            object instanceB = new MyClassB();

            Console.ReadLine();
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            //HashCode и ссылка на обьект в переменной, например в instanceA - это РАЗНЫЕ ВЕЩИ!
            Object instanceA = new MyClassA();
            object instanceB = new MyClassB();

            //instanceA. - 4 метода: Equals(object), GetHashCode(), GetType(), ToString().
            //Object. - 2 статических метода: Equals(object,object) и ReferenceEquals(object, object)


            //Object browser => mscorlib[..] => System => Object

            // ~Object() - диструктор- это специальный метод, который учавствует в финализации объекта.
            // Вызывается автоматически перед тем, как Garbage Collector будет удалять обьект из кучи.

            // Equals(object) - виртуальный - ПРАВИЛО: если переопределяется Equals(object), то нужно и переопределить GetHashCode()// проверяет как ReferenceEquals только ссылки.
            // Equals(object,object) - статический- ЭТО ОБЕРТКА НАД ОБЫЧНЫМ Equals(object). Когда мы переопределяем Equals(obj) то и Equals(object,object) переопределяется тоже т.к внутри себя использует обычный Equals(obj)
            // GetHashCode() -виртуальный- возвращает hash code обьекта - т.е некий номер паспорта -

            // GetType() - возращает ссылку на экземпляр класса Type, который нам выдаст всю информацию
            // о типе того обьекта(экземпляра), на котором и был вызван этот метод.

            // MemberwiseClone() - граф.наследование клонирует ГЛУБОКО, а все ассоциации клонирует ПОВЕРХНОСТНО!
            // Смесь ГЛУБОКОГО и ПОВЕРХНОСТНОГО клонирования называется ЧАСТИЧНЫМ(неполным) клонированием.
            // Object() - конструктор
            // ReferenceEquals(object, object) - статический - сверяет ССЫЛКИ НА обьекты(адреса обьектов на куче).
            // Может быть так, что HashCod`ы совпадают и значение в обьектах одинаковое, НО ССЫЛКИ НА ТО ОБЬЕКТЫ РАЗНЫЕ!
            // ToString() - виртуальный

            //ДВА СТАТИЧЕСИХ: каждый из них имеет 2 аргумента - Equals(object,object) и ReferenceEquals(object, object)
            //Три виртуальных: Equals(object), GetHashCode(), ToString()
            //Delay
            Console.ReadKey();
        }
        static void Main()
        {
            Object instanceA = new MyClassA();
            object instanceB = new MyClassB();

            // Delay.
            Console.ReadKey();
        }
Beispiel #6
0
 static void Main(string[] args)
 {
     //Тут будут вызывыться конструкторы по умолчанию, которые будут инициализироваться все поля в классе
     //при этом вызывая другие конструкторы!
     MyClassA myA = new MyClassA();
     MyClassB myB = new MyClassB();
     MyClassC myC = new MyClassC();
 }
 public MyClassB(MyClassB param)
 {
     Height      = param.Height;
     paramClassA = new MyClassA();
     if (param.paramClassA != null)
     {
         paramClassA.Width = param.paramClassA.Width;
     }
 }
Beispiel #8
0
        public void Merging_Properties()
        {
            MyClassB defaults = new MyClassB { Param1 = "defaults" };
            MyClassB settings = new MyClassB { Param2 = "settings" };
            MyClassB results = PropertyMerger.ObjectMerge<MyClassB>(defaults, settings);

            Assert.AreEqual("defaults", results.Param1);
            Assert.AreEqual("settings", results.Param2);
            Assert.AreEqual(null, results.Param3);
        }
Beispiel #9
0
        public void TestMappingToTarget()
        {
            var a = new MyClassA();
            var b = new MyClassB();

            a.MyStruct = new MyStruct("A");

            a.Adapt(b);

            b.MyStruct.Property.ShouldBe("A");
        }
    //....
    public MyCLassB Clone()
    {
        var result = new MyClassB
        {
            Height = Height
        };

        result.paramClassA = new MyClassA();
        if (paramClassA != null)
        {
            result.paramClassA.Width = paramClassA.Width;
        }
    }
Beispiel #11
0
    public void Merging_Properties()
    {
        MyClassB defaults = new MyClassB {
            Param1 = "defaults"
        };
        MyClassB settings = new MyClassB {
            Param2 = "settings"
        };
        MyClassB results = CoreUtils.ObjectMerge <MyClassB>(defaults, settings);

        Assert.AreEqual("defaults", results.Param1);
        Assert.AreEqual("settings", results.Param2);
        Assert.AreEqual(null, results.Param3);
    }
Beispiel #12
0
        static void Main(string[] args)
        {
            MyClassA a = new MyClassA();

            a.Method();

            MyClassB b = new MyClassB();

            b.Method();

            MyClassC c = new MyClassC();

            c.Method();

            Console.ReadLine();
        }
Beispiel #13
0
 static void Main()
 {
     MyClassA myA = new MyClassA();
     MyClassB myB = new MyClassB();
     MyClassC myC = new MyClassC();
 }
Beispiel #14
0
 public MyClassB(MyClassB param)
 {
     this.Heigth   = param.Height;
     this.MyClassA = param.MyClassA;
 }
Beispiel #15
0
    public static void Main()
    {
        MyClassB b = new MyClassB();

        b.Calc();
    }
 public int Diff(int a, int b)
 {
     classBObject = new MyClassB();
     return(classBObject.Diff(a, b));
 }
Beispiel #17
0
 static void Main(string[] args)
 {
     MyClassA myA = new MyClassA();
     MyClassB myB = new MyClassB();
 }
Beispiel #18
0
 public MyClassC(MyClassA a, MyClassB b)
 {
     //  Console.WriteLine("called a+b");
 }
Beispiel #19
0
 static void Main()
 {
     MyClassB  myB  = new MyClassB();
     MyClassB2 myB2 = new MyClassB2();
 }