By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,965 Members | 1,468 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,965 IT Pros & Developers. It's quick & easy.

A way to refer to items in Session object without using Session directly

P: n/a
Is there a way to refer to things in Session object without calling Session
itself?

Jun 27 '08 #1
Share this Question
Share on Google+
8 Replies


P: n/a
Yea,

Just keep it in both places.... Session and other container/place you will
use to get those things...
---------------------------------------------------------------------------
On a serious note..... What are you trying to do.
Will HttpContext.Current.Session help?
you can access Session object from your business logic without passing
Session around....If that is what you trying to avoid.

George.

"Andy B" <a_*****@sbcglobal.netwrote in message
news:%2***************@TK2MSFTNGP06.phx.gbl...
Is there a way to refer to things in Session object without calling
Session itself?

Jun 27 '08 #2

P: n/a
Hi,

if you intend to keep your component loosely coupled, so that it does not
require ASP.NET's session to exist (if you intend to use it in other types
of apps or in a web service etc), you can design so that you have a type in
the component library which represents the data the usual component in that
library needs. E.g create a type to abstract the concept of a session for
your components.

You can instantiate that object (session type) in ASP.NET, store it in
ASP.NEt's Session if needed, but when using components from the library, you
pass it(them) the session object so the component wouldn't need to do grabs
to the ASP.NET Session.

Some background why just HttpContext.Current.Session is a bad thing:
http://aspadvice.com/blogs/joteke/ar.../23/16785.aspx

--
Teemu Keiski
AspInsider, ASP.NET MVP
http://blogs.aspadvice.com/joteke
http://teemukeiski.net

"Andy B" <a_*****@sbcglobal.netwrote in message
news:%2***************@TK2MSFTNGP06.phx.gbl...
Is there a way to refer to things in Session object without calling
Session itself?

Jun 27 '08 #3

P: n/a
I am trying to avoid having to do something like this every time I want an
object from Session:
((DataSet)Session["ContractDataSet"]).Tables["..."]...;
or:
DataSet ContractDataSet = (DataSet)Session["ContractDataSet"];
//...whatever with CongtractDataSet

Session["ContractDataSet"]=ContractDataSet;

I want a way to create and refer to just ContractDataSEt but have it linked
to Session["ContractDataSet"] as well as ContractDataSet. I just need the
code in VB 9.


"George Ter-Saakov" <gt****@cardone.comwrote in message
news:OF**************@TK2MSFTNGP05.phx.gbl...
Yea,

Just keep it in both places.... Session and other container/place you will
use to get those things...
---------------------------------------------------------------------------
On a serious note..... What are you trying to do.
Will HttpContext.Current.Session help?
you can access Session object from your business logic without passing
Session around....If that is what you trying to avoid.

George.

"Andy B" <a_*****@sbcglobal.netwrote in message
news:%2***************@TK2MSFTNGP06.phx.gbl...
>Is there a way to refer to things in Session object without calling
Session itself?


Jun 27 '08 #4

P: n/a
You could make a wrapper class and create a property. The get and set for
the property will then call the session object:

public class MyDataClass
{

public static DataSet ContractDataSet
{
get
{
return (DataSet)Session["ContractDataSet"];
}
set
{
Session["ContractDataSet"] = value;
}
}

}
You might want to do some null checks as well.

Regards,
Rick Davis
DBG Software
"Andy B" wrote:
I am trying to avoid having to do something like this every time I want an
object from Session:
((DataSet)Session["ContractDataSet"]).Tables["..."]...;
or:
DataSet ContractDataSet = (DataSet)Session["ContractDataSet"];
//...whatever with CongtractDataSet

Session["ContractDataSet"]=ContractDataSet;

I want a way to create and refer to just ContractDataSEt but have it linked
to Session["ContractDataSet"] as well as ContractDataSet. I just need the
code in VB 9.


"George Ter-Saakov" <gt****@cardone.comwrote in message
news:OF**************@TK2MSFTNGP05.phx.gbl...
Yea,

Just keep it in both places.... Session and other container/place you will
use to get those things...
---------------------------------------------------------------------------
On a serious note..... What are you trying to do.
Will HttpContext.Current.Session help?
you can access Session object from your business logic without passing
Session around....If that is what you trying to avoid.

George.

"Andy B" <a_*****@sbcglobal.netwrote in message
news:%2***************@TK2MSFTNGP06.phx.gbl...
Is there a way to refer to things in Session object without calling
Session itself?


Jun 27 '08 #5

P: n/a
So this would be a static class that is maintained outside the bounds of the
page that uses it then? And I would probably put other methods/events in
this class that use the same session object?
"dbgrick" <db*****@discussions.microsoft.comwrote in message
news:1B**********************************@microsof t.com...
You could make a wrapper class and create a property. The get and set for
the property will then call the session object:

public class MyDataClass
{

public static DataSet ContractDataSet
{
get
{
return (DataSet)Session["ContractDataSet"];
}
set
{
Session["ContractDataSet"] = value;
}
}

}
You might want to do some null checks as well.

Regards,
Rick Davis
DBG Software
"Andy B" wrote:
>I am trying to avoid having to do something like this every time I want
an
object from Session:
((DataSet)Session["ContractDataSet"]).Tables["..."]...;
or:
DataSet ContractDataSet = (DataSet)Session["ContractDataSet"];
//...whatever with CongtractDataSet

Session["ContractDataSet"]=ContractDataSet;

I want a way to create and refer to just ContractDataSEt but have it
linked
to Session["ContractDataSet"] as well as ContractDataSet. I just need the
code in VB 9.


"George Ter-Saakov" <gt****@cardone.comwrote in message
news:OF**************@TK2MSFTNGP05.phx.gbl...
Yea,

Just keep it in both places.... Session and other container/place you
will
use to get those things...
---------------------------------------------------------------------------
On a serious note..... What are you trying to do.
Will HttpContext.Current.Session help?
you can access Session object from your business logic without passing
Session around....If that is what you trying to avoid.

George.

"Andy B" <a_*****@sbcglobal.netwrote in message
news:%2***************@TK2MSFTNGP06.phx.gbl...
Is there a way to refer to things in Session object without calling
Session itself?





Jun 27 '08 #6

P: n/a
"dbgrick" <db*****@discussions.microsoft.comwrote in message
news:1B**********************************@microsof t.com...
You could make a wrapper class and create a property.
That will not prevent the Session object from actually being called, albeit
behind the scenes - all it will do is create a completely unnecessary
additional layer of code for no benefit whatsoever...

If you want to use the Session cache, then you need to refer to it - no
getting round that...
--
Mark Rae
ASP.NET MVP
http://www.markrae.net

Jun 27 '08 #7

P: n/a
If all it was used for was to wrap around the Session, then it would be kind
of useless. Since the design and code of the wizard I am working on deals
with a lot of transactions between datasets and the frontend, I will need to
create other methods and properties to get the work done. Insdead of making
tons of senseless clutter inside the page, I can just make it inside a class
and then reference the class in the page code behind. Unless of course, that
isn't a good idea...
"Mark Rae [MVP]" <ma**@markNOSPAMrae.netwrote in message
news:Ok**************@TK2MSFTNGP02.phx.gbl...
"dbgrick" <db*****@discussions.microsoft.comwrote in message
news:1B**********************************@microsof t.com...
>You could make a wrapper class and create a property.

That will not prevent the Session object from actually being called,
albeit behind the scenes - all it will do is create a completely
unnecessary additional layer of code for no benefit whatsoever...

If you want to use the Session cache, then you need to refer to it - no
getting round that...
--
Mark Rae
ASP.NET MVP
http://www.markrae.net

Jun 27 '08 #8

P: n/a
On May 29, 11:12*pm, "Mark Rae [MVP]" <m...@markNOSPAMrae.netwrote:
"dbgrick" <dbgr...@discussions.microsoft.comwrote in message

news:1B**********************************@microsof t.com...
You could make a wrapper class and create a property.

That will not prevent the Session object from actually being called, albeit
behind the scenes - all it will do is create a completely unnecessary
additional layer of code for no benefit whatsoever...

If you want to use the Session cache, then you need to refer to it - no
getting round that...
It ensures a) that there's no typos anywhere where the same object is
being accessed, and b) that there's agreement at all points of access
on what the data type is. (a) could be achieved by introducing a
constant, but (b) could only be achieved in that case by searching the
codebase. It's a lot nicer if you're changing a datatype to do it
inside this wrapper class and then have the compiler tell you of any
problems with that.

Damien
Jun 27 '08 #9

This discussion thread is closed

Replies have been disabled for this discussion.