⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsllblgenerator.cs

📁 LLBLGen 1.21 Sourcecode
💻 CS
📖 第 1 页 / 共 5 页
字号:
				swBaseClass.WriteLine("' // is registered manually so it should be added to the GAC. Change values to your situation.");
				swBaseClass.WriteLine("' <Assembly: ApplicationName(\"MyCom+PackageName\")>         ' <-- UNCOMMENT THIS LINE. COM+ application name as it appears in the COM+ catalog.");
				swBaseClass.WriteLine("' <Assembly: AssemblyKeyFileAttribute(\"MyPublicKey.snk\")>  ' <-- UNCOMMENT THIS LINE. Strong name for assembly.");
				swBaseClass.WriteLine("' // Be sure to add 'Imports System.Reflection' to the Imports list if you uncomment the lines above.");
				swBaseClass.WriteLine("' ///////////////////////////////////////////////////////////////////////////");
				sInheritsFrom = "ServicedComponent";
				bHasBaseClass = true;
				sOverrideDispose = "Overrides ";
			}
			else
			{
				sOverrideDispose = "Overridable ";
				sInheritsFrom = "";
				bHasBaseClass = false;
			}

			swBaseClass.WriteLine(Environment.NewLine + "Namespace " + m_sNETNamespace);
			
			// Global error enum
			if(m_bNETIncludeComments)
			{
				swBaseClass.WriteLine("\t' /// <summary>");
				swBaseClass.WriteLine("\t' /// Purpose: Error Enums used by this LLBL library.");
				swBaseClass.WriteLine("\t' /// </summary>");
			}
			swBaseClass.WriteLine("\tPublic Enum LLBLError");
			swBaseClass.WriteLine("\t\tAllOk");
			swBaseClass.WriteLine("\t\t' // Add more here (check the comma's!)");
			swBaseClass.WriteLine("\tEnd Enum");
			swBaseClass.WriteLine(Environment.NewLine);

			// Interface for common methods definition
			if(m_bNETIncludeComments)
			{
				swBaseClass.WriteLine("\t' /// <summary>");
				swBaseClass.WriteLine("\t' /// Purpose: General interface of the API generated. Contains only common methods of all classes.");
				swBaseClass.WriteLine("\t' /// </summary>");
			}
			swBaseClass.WriteLine("\tPublic Interface ICommonDBAccess");
			swBaseClass.WriteLine("\t\tFunction\tInsert() As Boolean");
			swBaseClass.WriteLine("\t\tFunction\tUpdate() As Boolean");
			swBaseClass.WriteLine("\t\tFunction\tDelete() As Boolean");
			swBaseClass.WriteLine("\t\tFunction\tSelectOne() As DataTable");
			swBaseClass.WriteLine("\t\tFunction\tSelectAll() As DataTable");
			swBaseClass.WriteLine("\tEnd Interface");
			swBaseClass.WriteLine(Environment.NewLine);
			
			// Base class declaration
			if(m_bNETIncludeComments)
			{
				swBaseClass.WriteLine("\t' /// <summary>");
				swBaseClass.WriteLine("\t' /// Purpose: Abstract base class for Database Interaction classes.");
				if(m_bNETIncludeCOMPlusSupport)
				{
					swBaseClass.WriteLine("\t' /// Class supports COM+ services and is therefor derived from ServicedComponent.");
				}
				swBaseClass.WriteLine("\t' /// </summary>");
			}
			
			// COM+ Attributes
			if(m_bNETIncludeCOMPlusSupport)
			{
				swBaseClass.Write("\t<ComVisible(true), Serializable");
				if(m_bNETIncludeJITSupport)
				{
					swBaseClass.Write(", JustInTimeActivation");
				}
				if(m_bNETIncludeTransactionSupport)
				{
					swBaseClass.Write(", Transaction(TransactionOption.Supported)");
				}
				if(m_bNETIncludeObjectPoolingSupport)
				{
					swBaseClass.Write(", ObjectPooling");
				}
				if(m_bNETIncludeLoadBalancingSupport)
				{
					swBaseClass.Write(", LoadBalancingSupported");
				}
				if(m_iNETConnectionStringRetrieval == (int)eConnectionStringRetrieval.ConstructionString)
				{
					swBaseClass.Write(", ConstructionEnabled([Default] := \"" + m_sConnectionString + "\")");
				}
				// close attributes tag. Add '_' so Visual Basic.NET understands this statements continues on the next line.
				swBaseClass.Write("> _" + Environment.NewLine);
			}
			
			swBaseClass.WriteLine("\tPublic MustInherit Class " + m_sNETClassPrefix + "DBInteractionBase");
			if(bHasBaseClass)
			{
				swBaseClass.WriteLine("\t\tInherits " + sInheritsFrom);
			}
			else
			{
				swBaseClass.WriteLine("\t\tImplements IDisposable");
			}
			swBaseClass.WriteLine("\t\tImplements ICommonDBAccess" + Environment.NewLine);
			
			// Member declaration
			swBaseClass.WriteLine("#Region \" Class Member Declarations \"" + Environment.NewLine);
			swBaseClass.WriteLine("\t\tProtected\t" + PrefixMemberVar("MainConnection", "sco") + " As SqlConnection");
			if(m_bSPIncludeErrorCodeSupport)
			{
				swBaseClass.WriteLine("\t\tProtected\t" + PrefixMemberVar("ErrorCode", "i") + " As SqlInt32");
			}
			if(m_bNETIncludeConnectionProviderSupport)
			{
				swBaseClass.WriteLine("\t\tProtected\t" + PrefixMemberVar("MainConnectionIsCreatedLocal", "b") + " As Boolean");
				swBaseClass.WriteLine("\t\tProtected\t" + PrefixMemberVar("MainConnectionProvider", "cp") + " As " + m_sNETClassPrefix + "ConnectionProvider");
			}
			if(m_iNETConnectionStringRetrieval != (int)eConnectionStringRetrieval.AppConfig)
			{
				swBaseClass.WriteLine("\t\tPrivate\t\t" + PrefixMemberVar("ConnectionString","s") + " As String");
			}	
			swBaseClass.WriteLine("\t\tPrivate\t\t" + PrefixMemberVar("IsDisposed","b") + " As Boolean");
			swBaseClass.WriteLine(Environment.NewLine + "#End Region");
			swBaseClass.WriteLine(Environment.NewLine);
			
			// When COMPlus support is selected, emit an Activate() / Deactivate() method pair, otherwise
			// emit a constructor.
			if(m_bNETIncludeCOMPlusSupport)
			{
				// ::Activate()
				if(m_bNETIncludeComments)
				{
					swBaseClass.WriteLine("\t\t' /// <summary>");
					swBaseClass.WriteLine("\t\t' /// Purpose: Activation override. Will be called by COM+ when object is created or selected from a pool.");
					swBaseClass.WriteLine("\t\t' /// </summary>");
				}
				swBaseClass.WriteLine("\t\tOverrides Protected Sub Activate()");
				swBaseClass.WriteLine("\t\t\t' // Initialize the class' members.");
				swBaseClass.WriteLine("\t\t\tInitClass()");
				if(m_iNETConnectionStringRetrieval != (int)eConnectionStringRetrieval.AppConfig)
				{
					swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".ConnectionString = " + 
						PrefixMemberVar("ConnectionString", "s"));
				}
				swBaseClass.WriteLine("\t\tEnd Sub");
				swBaseClass.WriteLine(Environment.NewLine);

				// ::Deactivate()
				if(m_bNETIncludeComments)
				{
					swBaseClass.WriteLine("\t\t' /// <summary>");
					swBaseClass.WriteLine("\t\t' /// Purpose: De-activation override. Will be called by COM+ when the object is about to be deactivated.");
					swBaseClass.WriteLine("\t\t' /// </summary>");
				}
				swBaseClass.WriteLine("\t\tOverrides Protected Sub Deactivate()");
				swBaseClass.WriteLine("\t\t\t' // Destruct membervariables with resources.");
				swBaseClass.WriteLine("\t\t\tIf Not " + PrefixMemberVar("MainConnection", "sco") + " Is Nothing Then");
				if(m_bNETIncludeConnectionProviderSupport)
				{
					swBaseClass.WriteLine("\t\t\t\tIf " + PrefixMemberVar("MainConnectionIsCreatedLocal","b") + " Then");
					swBaseClass.WriteLine("\t\t\t\t\t' // Object is created in this class, so destroy it here.");
					swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".Close()");
					swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".Dispose()");
					swBaseClass.WriteLine("\t\t\t\t\t" + PrefixMemberVar("MainConnectionIsCreatedLocal","b") + " = True");
					swBaseClass.WriteLine("\t\t\t\tEnd If");
				}
				else
				{
					swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".Dispose()");
				}
				swBaseClass.WriteLine("\t\t\t\t" + PrefixMemberVar("MainConnection", "sco") + " = Nothing");
				swBaseClass.WriteLine("\t\t\tEnd If");
				swBaseClass.WriteLine("\t\tEnd Sub");
				swBaseClass.WriteLine(Environment.NewLine);

				// CanBePooled
				if(m_bNETIncludeObjectPoolingSupport)
				{
					if(m_bNETIncludeComments)
					{
						swBaseClass.WriteLine("\t\t' /// <summary>");
						swBaseClass.WriteLine("\t\t' /// Purpose: CanBePooled override. Will be called by COM+ when the object is about to be put back in the pool.");
						swBaseClass.WriteLine("\t\t' /// </summary>");
					}
					swBaseClass.WriteLine("\t\tOverrides Protected Function CanBePooled() As Boolean");
					swBaseClass.WriteLine("\t\t\tReturn True");
					swBaseClass.WriteLine("\t\tEnd Function");
					swBaseClass.WriteLine(Environment.NewLine);
				}
			}
			else
			{
				// ::ctor() (New())
				if(m_bNETIncludeComments)
				{
					swBaseClass.WriteLine("\t\t' /// <summary>");
					swBaseClass.WriteLine("\t\t' /// Purpose: Class constructor.");
					swBaseClass.WriteLine("\t\t' /// </summary>");
				}
				swBaseClass.WriteLine("\t\tPublic Sub New()");
				swBaseClass.WriteLine("\t\t\t' // Initialize the class' members.");
				swBaseClass.WriteLine("\t\t\tInitClass()");
				swBaseClass.WriteLine("\t\tEnd Sub");
				swBaseClass.WriteLine(Environment.NewLine);
			}
			
			// ::InitClass()
			if(m_bNETIncludeComments)
			{
				swBaseClass.WriteLine("\t\t' /// <summary>");
				swBaseClass.WriteLine("\t\t' /// Purpose: Initializes class members.");
				swBaseClass.WriteLine("\t\t' /// </summary>");
			}
			swBaseClass.WriteLine("\t\tPrivate Sub InitClass()");
			swBaseClass.WriteLine("\t\t\t' // create all the objects and initialize other members.");
			swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("MainConnection", "sco") + " = new SqlConnection()");
			if(m_bNETIncludeConnectionProviderSupport)
			{
				swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("MainConnectionIsCreatedLocal","b") + " = True");
				swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("MainConnectionProvider","cp") + " = Nothing");
			}
			if(m_iNETConnectionStringRetrieval == (int)eConnectionStringRetrieval.AppConfig)
			{
				// emit code to retrieve the connectionstring from the app.config file.
				swBaseClass.WriteLine("\t\t\tDim " + PrefixMemberVar("ConfigReader", "asr") + " As AppSettingsReader = new AppSettingsReader()");
				swBaseClass.WriteLine(Environment.NewLine + "\t\t\t' // Set connection string of the sqlconnection object");
				swBaseClass.Write("\t\t\t" + PrefixMemberVar("MainConnection", "sco") + ".ConnectionString = ");
				swBaseClass.WriteLine(PrefixMemberVar("ConfigReader", "asr") + ".GetValue(\"Main.ConnectionString\", \"\".GetType()).ToString()");
			}
			if(m_bSPIncludeErrorCodeSupport)
			{
				swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("ErrorCode", "i") + " = New SqlInt32(LLBLError.AllOk)");
			}
			swBaseClass.WriteLine("\t\t\t" + PrefixMemberVar("IsDisposed","b") + " = False");
			swBaseClass.WriteLine("\t\tEnd Sub" + Environment.NewLine + Environment.NewLine);
			
			// Emit the Constructor String retrieval code if necessary
			if(m_iNETConnectionStringRetrieval == (int)eConnectionStringRetrieval.ConstructionString)
			{
				// ::Construct()
				if(m_bNETIncludeComments)
				{
					swBaseClass.WriteLine("\t\t' /// <summary>");
					swBaseClass.WriteLine("\t\t' /// Purpose: overrides the ServicedComponent's implementation of Construct() to retrieve the Constructor String from COM+.");
					swBaseClass.WriteLine("\t\t' /// </summary>");
				}
				swBaseClass.WriteLine("\t\tOverrides Protected Sub Construct(ByVal " + PrefixMethodParameter("ConstructString","s") + " As String)");
				swBaseClass.WriteLine("\t\t\tMe." + PrefixProperty("ConnectionString","s") + " = " + PrefixMethodParameter("ConstructString","s"));
				swBaseClass.WriteLine("\t\tEnd Sub");
				swBaseClass.WriteLine(Environment.NewLine);
			}
			if(!m_bNETIncludeCOMPlusSupport)
			{
				// ::Dispose()
				if(m_bNETIncludeComments)
				{
					swBaseClass.WriteLine("\t\t' /// <summary>");
					swBaseClass.WriteLine("\t\t' /// Purpose: Implements the IDispose' method Dispose.");
					swBaseClass.WriteLine("\t\t' /// </summary>");
				}
				swBaseClass.WriteLine("\t\tOverloads Public Sub Dispose() Implements IDisposable.Dispose");
				swBaseClass.WriteLine("\t\t\tDispose(True)");
				swBaseClass.WriteLine("\t\t\tGC.SuppressFinalize(Me)");
				swBaseClass.WriteLine("\t\tEnd Sub");
				swBaseClass.WriteLine(Environment.NewLine);
			}

			// ::Dispose(bool)
			if(m_bNETIncludeComments)
			{
				swBaseClass.WriteLine("\t\t' /// <summary>");
				swBaseClass.WriteLine("\t\t' /// Purpose: Implements the Dispose functionality.");
				swBaseClass.WriteLine("\t\t' /// </summary>");
			}
			swBaseClass.WriteLine("\t\t" + sOverrideDispose + " Overloads Protected Sub Dispose(ByVal " + PrefixMethodParameter("IsDisposing","b") + " As Boolean)");
			swBaseClass.WriteLine("\t\t\t' // Check to see if Dispose has already been called.");
			swBaseClass.WriteLine("\t\t\tIf Not " + PrefixMemberVar("IsDisposed", "b") + " Then");
			swBaseClass.WriteLine("\t\t\t\tIf " + PrefixMethodParameter("IsDisposing", "b") + " Then");
			swBaseClass.WriteLine("\t\t\t\t\t' // Dispose managed resources.");
			if(m_bNETIncludeConnectionProviderSupport)
			{

⌨️ 快捷键说明

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