Comments (11)
Needs design
from httpcacheheaders.
Should this be as a function returning an IValidationValueStore
or as an instance? Or will users just register the service themselves and be done with it (skipping service collection .AddHttpCacheHeaders
)
from httpcacheheaders.
I was thinking of something along the lines of how JsonOptions can be used to set a custom contract resolver, eg:
services.AddMvc(...)
.AddJsonOptions(options => options.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver());
But I'm open to suggestions, what do you think? :)
from httpcacheheaders.
That's what the service collection is for imo :-) Although that sucks for discoverability. I'd go with either a function that instantiates things, or just take an instance much like the above example.
from httpcacheheaders.
Just wondering, today, wouldn't registering your own after you added HttpCacheHeaders simply overwrite the existing one and use yours?
services.Add(ServiceDescriptor.Singleton<IValidationValueStore, InMemoryValidationValueStore>());
from httpcacheheaders.
Proposal to implement this by passing in an instance of a custom store: #57
from httpcacheheaders.
@CumpsD : I pushed a few commits to the modular branch - let me know what you think :) If those are ok for you I think we can merge this into master.
from httpcacheheaders.
Been thinking about this some more (it's amazing what an awful night of sleep in terrible temperatures can do). I think it's best to add a StoreKeyContext (or something along those lines) object and accept that as parameter for GenerateStoreKey. That allows us to add additional info to the context in case it's needed in a later version without breaking changes. I'll add another commit for that today :)
from httpcacheheaders.
Commits look good to me, StoreKeyContext sounds good too, can't wait for the next release :D
from httpcacheheaders.
Added the context, merged branch into master and just pushed a prerelease version to NuGet :)
from httpcacheheaders.
Using prerelease, seems to all work :)
from httpcacheheaders.
Related Issues (20)
- Disable caching for error responses HOT 5
- Provide the ability to ignore caching by default HOT 7
- Provide a way to store validator values in a scalable manner HOT 18
- Use the IAsyncEnumerable interface in the FindStoreKeysByKeyPartAsync method of the IValueStore interface HOT 4
- Allow StoreKey to be rehydrated HOT 13
- Remove all unsupported tfm's HOT 4
- Update all out-of-date NuGet packages HOT 6
- Should we migrate away from Moq HOT 1
- Make the StoreKey object round-trippable HOT 5
- Use the InMemoryCache rather than a custom dictionary HOT 9
- Add tests for methods that don't have them in the InMemoryValidatorValueStore
- Add .Net 8 and use the .Net 8 RC1 SDK HOT 1
- Support Cancellation tokens
- Swappable input implementations for eTag generation HOT 2
- InMemoryValidatorValueStore is no longer thread safe HOT 1
- Nullable (& other) language improvements
- Redis Distributed CacheKeyRetriever not returning set on keys command HOT 1
- Clean up csproj & optimise dependencies
- 7.1.0 contains bug when HttpCacheExpiration and HttpCacheValidation attributes are applied on controller and on action HOT 2
- Middleware returns 304 when DisableGlobalHeaderGeneration = true and StoreKey is MarkForInvalidation
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from httpcacheheaders.