fixture.cs

来自「NHibernate NET开发者所需的」· CS 代码 · 共 64 行

CS
64
字号
using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using NHibernate.Proxy;
using NUnit.Framework;

namespace NHibernate.Test.NHSpecificTest.NH317
{
	/// <summary>
	/// Summary description for Fixture.
	/// </summary>
	[TestFixture]
	public class Fixture : TestCase
	{
		protected override string MappingsAssembly
		{
			get { return "NHibernate.Test"; }
		}

		protected override IList Mappings
		{
			get { return new string[] {"NHSpecificTest.NH317.Node.hbm.xml"}; }
		}

		[Test]
		public void ProxySerialization()
		{
			Node node = new Node();
			node.Id = 1;
			node.Name = "Node 1";

			ISession s = sessions.OpenSession();
			s.Save(node);
			s.Flush();
			s.Close();

			s = OpenSession();
			Node nodeProxy = (Node) s.Load(typeof(Node), 1);
			// Test if it is really a proxy
			Assert.IsTrue(nodeProxy is INHibernateProxy);
			s.Close();

			// Serialize
			IFormatter formatter = new BinaryFormatter();
			MemoryStream ms = new MemoryStream();
			formatter.Serialize(ms, nodeProxy);

			// Deserialize
			ms.Seek(0, SeekOrigin.Begin);
			Node deserializedNodeProxy = (Node) formatter.Deserialize(ms);
			ms.Close();

			// Deserialized proxy should implement the INHibernateProxy interface.
			Assert.IsTrue(deserializedNodeProxy is INHibernateProxy);

			s = OpenSession();
			s.Delete("from Node");
			s.Flush();
			s.Close();
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?