Sharing data between hierarchy of objects using StructureMap
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
My question is related to StructureMap and how to instantiate the object to share data between the hierarchy of objects within same http request context?
I have the below hierarchy of classes which generates some data.
IPageBuilder
-> IShipmentBuilder
-> IItemBuilder
-> IItemShippingOptionBuilder
-> IShippingOptionBuilder
-> IDeliveryMethodBuilder
-> IPaymentBuilder
-> ISummaryBuilder
In the client code: we use IPageBuilder.Build() will call the hierarchy of builders and returns an object.
Basically, We want to share some data from IItemBuilder to ISummaryBuilder. Eg., IItemBuilder makes an API call and the response should be shared also with ISummaryBuilder.
Tried Approach: Introduce an object such as IDataContext and pass it as argument in all above builders, but this seems to be tedious solution.
Expected Solution: Is there a way using StructureMap where I can inject IDataContext in IItemBuilder, store some data and the same data should be shared with ISummaryBuilder and it should happen for each http request context.
In short, is there a way to create a singleton per http request In structuremap?
structuremap
add a comment |
My question is related to StructureMap and how to instantiate the object to share data between the hierarchy of objects within same http request context?
I have the below hierarchy of classes which generates some data.
IPageBuilder
-> IShipmentBuilder
-> IItemBuilder
-> IItemShippingOptionBuilder
-> IShippingOptionBuilder
-> IDeliveryMethodBuilder
-> IPaymentBuilder
-> ISummaryBuilder
In the client code: we use IPageBuilder.Build() will call the hierarchy of builders and returns an object.
Basically, We want to share some data from IItemBuilder to ISummaryBuilder. Eg., IItemBuilder makes an API call and the response should be shared also with ISummaryBuilder.
Tried Approach: Introduce an object such as IDataContext and pass it as argument in all above builders, but this seems to be tedious solution.
Expected Solution: Is there a way using StructureMap where I can inject IDataContext in IItemBuilder, store some data and the same data should be shared with ISummaryBuilder and it should happen for each http request context.
In short, is there a way to create a singleton per http request In structuremap?
structuremap
How to use containers in structuremap to create object per http request? I want to create an object something like tempdata object which should live only on that http request context lift?
– Ganesh
Jan 26 at 7:53
add a comment |
My question is related to StructureMap and how to instantiate the object to share data between the hierarchy of objects within same http request context?
I have the below hierarchy of classes which generates some data.
IPageBuilder
-> IShipmentBuilder
-> IItemBuilder
-> IItemShippingOptionBuilder
-> IShippingOptionBuilder
-> IDeliveryMethodBuilder
-> IPaymentBuilder
-> ISummaryBuilder
In the client code: we use IPageBuilder.Build() will call the hierarchy of builders and returns an object.
Basically, We want to share some data from IItemBuilder to ISummaryBuilder. Eg., IItemBuilder makes an API call and the response should be shared also with ISummaryBuilder.
Tried Approach: Introduce an object such as IDataContext and pass it as argument in all above builders, but this seems to be tedious solution.
Expected Solution: Is there a way using StructureMap where I can inject IDataContext in IItemBuilder, store some data and the same data should be shared with ISummaryBuilder and it should happen for each http request context.
In short, is there a way to create a singleton per http request In structuremap?
structuremap
My question is related to StructureMap and how to instantiate the object to share data between the hierarchy of objects within same http request context?
I have the below hierarchy of classes which generates some data.
IPageBuilder
-> IShipmentBuilder
-> IItemBuilder
-> IItemShippingOptionBuilder
-> IShippingOptionBuilder
-> IDeliveryMethodBuilder
-> IPaymentBuilder
-> ISummaryBuilder
In the client code: we use IPageBuilder.Build() will call the hierarchy of builders and returns an object.
Basically, We want to share some data from IItemBuilder to ISummaryBuilder. Eg., IItemBuilder makes an API call and the response should be shared also with ISummaryBuilder.
Tried Approach: Introduce an object such as IDataContext and pass it as argument in all above builders, but this seems to be tedious solution.
Expected Solution: Is there a way using StructureMap where I can inject IDataContext in IItemBuilder, store some data and the same data should be shared with ISummaryBuilder and it should happen for each http request context.
In short, is there a way to create a singleton per http request In structuremap?
structuremap
structuremap
edited Jan 3 at 13:12
Ganesh
asked Jan 3 at 13:05
GaneshGanesh
217
217
How to use containers in structuremap to create object per http request? I want to create an object something like tempdata object which should live only on that http request context lift?
– Ganesh
Jan 26 at 7:53
add a comment |
How to use containers in structuremap to create object per http request? I want to create an object something like tempdata object which should live only on that http request context lift?
– Ganesh
Jan 26 at 7:53
How to use containers in structuremap to create object per http request? I want to create an object something like tempdata object which should live only on that http request context lift?
– Ganesh
Jan 26 at 7:53
How to use containers in structuremap to create object per http request? I want to create an object something like tempdata object which should live only on that http request context lift?
– Ganesh
Jan 26 at 7:53
add a comment |
1 Answer
1
active
oldest
votes
Imported Package StructureMap.Web and Used HttpContextBasedLifeCycle for IDataContext and preserved a dictionary within DataContext concrete class to persist the data until the lifetime of httpContext.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54022908%2fsharing-data-between-hierarchy-of-objects-using-structuremap%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Imported Package StructureMap.Web and Used HttpContextBasedLifeCycle for IDataContext and preserved a dictionary within DataContext concrete class to persist the data until the lifetime of httpContext.
add a comment |
Imported Package StructureMap.Web and Used HttpContextBasedLifeCycle for IDataContext and preserved a dictionary within DataContext concrete class to persist the data until the lifetime of httpContext.
add a comment |
Imported Package StructureMap.Web and Used HttpContextBasedLifeCycle for IDataContext and preserved a dictionary within DataContext concrete class to persist the data until the lifetime of httpContext.
Imported Package StructureMap.Web and Used HttpContextBasedLifeCycle for IDataContext and preserved a dictionary within DataContext concrete class to persist the data until the lifetime of httpContext.
answered Jan 26 at 10:11
GaneshGanesh
217
217
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54022908%2fsharing-data-between-hierarchy-of-objects-using-structuremap%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
How to use containers in structuremap to create object per http request? I want to create an object something like tempdata object which should live only on that http request context lift?
– Ganesh
Jan 26 at 7:53