Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why could not make instance of Transaction class in System.Transactions namespace

I was just going through writing a code and found some thing strange. If i try to make instance of Transaction class like this

 Transaction ts = new Transaction(); 

compiler raise me error The type System.Transactions.Transaction has no constructor defined

when i go through the definition of this class, i found it to be defined as public with no Static or Abstract keyword.

namespace System.Transactions
{
// Summary:
//     Represents a transaction.
[Serializable]
public class Transaction : IDisposable, ISerializable
{
    // Summary:
    //     Returns a value that indicates whether two System.Transactions.Transaction
    //     instances are not equal.
    //
    // Parameters:
    //   x:
    //     The System.Transactions.Transaction instance that is to the left of the inequality
    //     operator.
    //
    //   y:
    //     The System.Transactions.Transaction instance that is to the right of the
    //     inequality operator.
    //
    // Returns:
    //     true if x and y are not equal; otherwise, false.
    public static bool operator !=(Transaction x, Transaction y);
    //
    // Summary:
    //     Tests whether two specified System.Transactions.Transaction instances are
    //     equivalent.
    //
    // Parameters:
    //   x:
    //     The System.Transactions.Transaction instance that is to the left of the equality
    //     operator.
    //
    //   y:
    //     The System.Transactions.Transaction instance that is to the right of the
    //     equality operator.
    //
    // Returns:
    //     true if x and y are equal; otherwise, false.
    public static bool operator ==(Transaction x, Transaction y);

    // Summary:
    //     Gets or sets the ambient transaction.
    //
    // Returns:
    //     A System.Transactions.Transaction that describes the current transaction.
    public static Transaction Current { get; set; }
    //
    // Summary:
    //     Gets the isolation level of the transaction.
    //
    // Returns:
    //     One of the System.Transactions.IsolationLevel values that indicates the isolation
    //     level of the transaction.
    public IsolationLevel IsolationLevel { get; }
    //
    // Summary:
    //     Retrieves additional information about a transaction.
    //
    // Returns:
    //     A System.Transactions.TransactionInformation that contains additional information
    //     about the transaction.
    public TransactionInformation TransactionInformation { get; }

    // Summary:
    //     Indicates that the transaction is completed.
    //
    // Exceptions:
    //   System.ObjectDisposedException:
    //     An attempt to subscribe this event on a transaction that has been disposed.
    public event TransactionCompletedEventHandler TransactionCompleted;

    // Summary:
    //     Creates a clone of the transaction.
    //
    // Returns:
    //     A System.Transactions.Transaction that is a copy of the current transaction
    //     object.
    public Transaction Clone();
    //
    // Summary:
    //     Creates a dependent clone of the transaction.
    //
    // Parameters:
    //   cloneOption:
    //     A System.Transactions.DependentCloneOption that controls what kind of dependent
    //     transaction to create.
    //
    // Returns:
    //     A System.Transactions.DependentTransaction that represents the dependent
    //     clone.
    public DependentTransaction DependentClone(DependentCloneOption cloneOption);
    //
    // Summary:
    //     Releases the resources that are held by the object.
    public void Dispose();
    //
    // Summary:
    //     Enlists a durable resource manager that supports two phase commit to participate
    //     in a transaction.
    //
    // Parameters:
    //   resourceManagerIdentifier:
    //     A unique identifier for a resource manager, which should persist across resource
    //     manager failure or reboot.
    //
    //   enlistmentNotification:
    //     An object that implements the System.Transactions.IEnlistmentNotification
    //     interface to receive two phase commit notifications.
    //
    //   enlistmentOptions:
    //     System.Transactions.EnlistmentOptions.EnlistDuringPrepareRequired if the
    //     resource manager wants to perform additional work during the prepare phase.
    //
    // Returns:
    //     An System.Transactions.Enlistment object that describes the enlistment.
    public Enlistment EnlistDurable(Guid resourceManagerIdentifier, IEnlistmentNotification enlistmentNotification, EnlistmentOptions enlistmentOptions);
    //
    // Summary:
    //     Enlists a durable resource manager that supports single phase commit optimization
    //     to participate in a transaction.
    //
    // Parameters:
    //   resourceManagerIdentifier:
    //     A unique identifier for a resource manager, which should persist across resource
    //     manager failure or reboot.
    //
    //   singlePhaseNotification:
    //     An object that implements the System.Transactions.ISinglePhaseNotification
    //     interface that must be able to receive single phase commit and two phase
    //     commit notifications.
    //
    //   enlistmentOptions:
    //     System.Transactions.EnlistmentOptions.EnlistDuringPrepareRequired if the
    //     resource manager wants to perform additional work during the prepare phase.
    //
    // Returns:
    //     An System.Transactions.Enlistment object that describes the enlistment.
    public Enlistment EnlistDurable(Guid resourceManagerIdentifier, ISinglePhaseNotification singlePhaseNotification, EnlistmentOptions enlistmentOptions);
    //
    // Summary:
    //     Enlists a resource manager that has an internal transaction using a promotable
    //     single phase enlistment (PSPE).
    //
    // Parameters:
    //   promotableSinglePhaseNotification:
    //     A System.Transactions.IPromotableSinglePhaseNotification interface implemented
    //     by the participant.
    //
    // Returns:
    //     A System.Transactions.SinglePhaseEnlistment interface implementation that
    //     describes the enlistment.
    public bool EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification promotableSinglePhaseNotification);
    //
    // Summary:
    //     Enlists a volatile resource manager that supports two phase commit to participate
    //     in a transaction.
    //
    // Parameters:
    //   enlistmentNotification:
    //     An object that implements the System.Transactions.IEnlistmentNotification
    //     interface to receive two phase commit notifications.
    //
    //   enlistmentOptions:
    //     System.Transactions.EnlistmentOptions.EnlistDuringPrepareRequired if the
    //     resource manager wants to perform additional work during the prepare phase.
    //
    // Returns:
    //     An System.Transactions.Enlistment object that describes the enlistment.
    public Enlistment EnlistVolatile(IEnlistmentNotification enlistmentNotification, EnlistmentOptions enlistmentOptions);
    //
    // Summary:
    //     Enlists a volatile resource manager that supports single phase commit optimization
    //     to participate in a transaction.
    //
    // Parameters:
    //   singlePhaseNotification:
    //     An object that implements the System.Transactions.ISinglePhaseNotification
    //     interface that must be able to receive single phase commit and two phase
    //     commit notifications.
    //
    //   enlistmentOptions:
    //     System.Transactions.EnlistmentOptions.EnlistDuringPrepareRequired if the
    //     resource manager wants to perform additional work during the prepare phase.
    //
    // Returns:
    //     An System.Transactions.Enlistment object that describes the enlistment.
    public Enlistment EnlistVolatile(ISinglePhaseNotification singlePhaseNotification, EnlistmentOptions enlistmentOptions);
    //
    // Summary:
    //     Determines whether this transaction and the specified object are equal.
    //
    // Parameters:
    //   obj:
    //     The object to compare with this instance.
    //
    // Returns:
    //     true if obj and this transaction are identical; otherwise, false.
    public override bool Equals(object obj);
    //
    // Summary:
    //     Returns the hash code for this instance.
    //
    // Returns:
    //     A 32-bit signed integer hash code.
    public override int GetHashCode();
    //
    // Summary:
    //     Rolls back (aborts) the transaction.
    public void Rollback();
    //
    // Summary:
    //     Rolls back (aborts) the transaction.
    //
    // Parameters:
    //   e:
    //     An explanation of why a rollback occurred.
    public void Rollback(Exception e);
 }
 }

If class is public, then why compiler not creating default constructor for me ??

like image 547
Rajeev Kumar Avatar asked Dec 08 '25 21:12

Rajeev Kumar


1 Answers

If the constructor is not public, i.e if it were declared as private, protected, internal or protected internal you cannot create a instance of it.

It is declared private, I get the error saying "Cannot access private constructor".

like image 170
Sriram Sakthivel Avatar answered Dec 11 '25 11:12

Sriram Sakthivel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!