有时候你可以丢掉整个世界,但你不可以丢掉自己--王建国

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
//using System.Reflection;

namespace abstractClass
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           
           
          //  C c = new C();          
          //  c.G();
          //  c.F();
          //E ds = new E();
           
            //MessageBox.Show(ds.GenerateImage().ImageFormat.ToString());
           // ActivatorCreateInstance.main aac = new ActivatorCreateInstance.main();
            ActivatorCreateInstance.main.asa();
             Test test=new Test();
             test.Deserialize();
        }
       
      
    }
    [Serializable]
    public class Person
    {
        private string name;
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
        public string Sex;
        public int Age = 31;
        public Course[] Courses;

        public Person()
        {
        }
        public Person(string Name)
        {
            name = Name;
            Sex = "男";
        }
    }
    [Serializable]
    public class Course
    {
        public string Name;
        [XmlIgnore]
        public string Description;
        public Course()
        {
        }
        public Course(string name, string description)
        {
            Name = name;
            Description = description;
        }
    }
    class Test:Form1
    {
        //序列化
        public void Serialiaze()
        {
            Person c = new Person("cyj");
            c.Courses = new Course[2];
            c.Courses[0] = new Course("英语", "交流工具");
            c.Courses[1] = new Course("数学", "自然科学");

            XmlSerializer xs = new XmlSerializer(typeof(Person));
            Stream stream = new FileStream("c:\\cyj.xml", FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
            xs.Serialize(stream, c);
            stream.Close();
        }
        //反序列化
            public void Deserialize()
            {
            XmlSerializer xs=new XmlSerializer(typeof(Person));
            Stream stream = new FileStream("c:\\cyj.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            Person p=(Person)xs.Deserialize(stream);
           MessageBox.Show(p.Name);
           MessageBox.Show(p.Age.ToString());
           MessageBox.Show(p.Courses.Length.ToString());
           
            }
       
    }

 

    /// <summary>
    /// 类E实现了IVerifyImage接口
    /// </summary>
    public class E : IVerifyImage
    {
        public D GenerateImage()
        {
            D dd = new D();
            dd.ImageFormat = ImageFormat.Icon;
            return dd;
        }
    }
    /// <summary>
    /// IVerifyImage接口
    /// </summary>
    public interface IVerifyImage
    {
        D GenerateImage();
    }
    /// <summary>
    /// 定义一个类型为D的类
    /// </summary>
    public class D
    {
        private ImageFormat imageFormat = ImageFormat.Jpeg;
        public ImageFormat ImageFormat
        {
            get { return imageFormat; }
            set { imageFormat = value; }
        }
     
    }
    /// <summary>
    /// 定义抽象类A、B,B继承A,C继承B
    /// </summary>
    abstract class A{ public abstract void F(); }
    abstract class B:A{public abstract void G();}
    class C : B
    {
        public override void F(){MessageBox.Show("override void F()");}
        public override void G(){MessageBox.Show("override void G()");}
       
     
    }
       
}
namespace ActivatorCreateInstance
{
    /// <summary>
    /// ClassExam 的摘要说明。
    /// </summary>
    public class ClassExam : IObjcet
    {
        private string name = "default name";
        public ClassExam()
        {

        }

        public ClassExam(string name)
        {
            this.name = name;
        }

        public void printName()
        {
            MessageBox.Show(this.name+"'s name is:"+"c://aa//".Trim().Trim('\\')+"db.dll");
           // Console.WriteLine(this.name);
          
        }
    }
}

namespace ActivatorCreateInstance
{
 /// <summary>
 /// IObjcet 的摘要说明。
 /// </summary>
 public interface IObjcet
 {
  void printName();
 }
}
namespace ActivatorCreateInstance
{
    /// <summary>
    /// main 的摘要说明。
    /// </summary>
    public class main
    {
       
        public  static void asa()
        {

            //用传递参数来得到一个类的实例
          
            string classname="ClassExam";
            //用Activator .CreateInstance创建函数实例,默认的不带参数的构造函数
            IObjcet obj = (IObjcet)Activator.CreateInstance(System.Type.GetType(string.Format("ActivatorCreateInstance.{0}", classname)), null);
            //System.Type .GetType  命名空间.类名,程序集
            obj.printName();
            //调用ClassExam类的另一个带参数构造函数
            IObjcet obj2 = (IObjcet)System.Activator.CreateInstance(System.Type.GetType("ActivatorCreateInstance.ClassExam",true), new string[] { "dd" });
            obj2.printName();

        }
    }
}

posted on 2008-12-08 15:49  王*建国  阅读(840)  评论(0)    收藏  举报