📄 clsllblgenerator.cs
字号:
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 + -