Skip to content

Provider interface for SQL locks #13

Closed

Description

@madelson

When using the library with IOC patterns it's often desirable to inject connection information separately from the type of lock or lock name. A centralized provider API would simplify this:

class SqlDistributedLockProvider
{
    // factory methods
    SqlDistributedLock CreateLock(string name);
    SqlDistributedLock CreateLockWithExactName(string name); // does not use GetSafeName()
    SqlDistributedReaderWriterLock CreateReaderWriterLock(string name);
    ...

    // we may also want to offer convenience methods for locking directly
    IDisposable TryAcquireExclusiveLock(string name, TimeSpan timeout, CancellationToken cancellationToken);
}

Activity

  1. XtremeOwnageDotCom commented on Dec 17, 2018

    @XtremeOwnageDotCom

    Here is my implementation of a interface, used with dependancy injection:

    https://pastebin.com/jBGgVY5J

    (Couldn't get the formatting working properly)

  2. XtremeOwnageDotCom commented on Dec 17, 2018

    @XtremeOwnageDotCom

    I personally prefer this method- as it only requires me to reference this library in the project which contains my database connection.

    The interface is defined in my "interfaces" class, which is referenced everywhere.

  3. added this to the 2.0 milestone on Jan 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions