Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / ASP.NET / General / May 2008

Tip: Looking for answers? Try searching our database.

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

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Andy B - 29 May 2008 18:38 GMT
Is there a way to refer to things in Session object without calling Session
itself?
George Ter-Saakov - 29 May 2008 18:55 GMT
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.

> Is there a way to refer to things in Session object without calling
> Session itself?
Andy B - 29 May 2008 22:00 GMT
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.

> Yea,
>
[quoted text clipped - 10 lines]
>> Is there a way to refer to things in Session object without calling
>> Session itself?
dbgrick - 29 May 2008 22:52 GMT
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

> I am trying to avoid having to do something like this every time I want an
> object from Session:
[quoted text clipped - 23 lines]
> >> Is there a way to refer to things in Session object without calling
> >> Session itself?
Andy B - 29 May 2008 23:08 GMT
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?

> You could make a wrapper class and create a property.  The get and set for
> the property will then call the session object:
[quoted text clipped - 51 lines]
>> >> Is there a way to refer to things in Session object without calling
>> >> Session itself?
Mark Rae [MVP] - 29 May 2008 23:12 GMT
> 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...

Signature

Mark Rae
ASP.NET MVP
http://www.markrae.net

Andy B - 30 May 2008 00:07 GMT
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...

>> You could make a wrapper class and create a property.
>
[quoted text clipped - 4 lines]
> If you want to use the Session cache, then you need to refer to it - no
> getting round that...
Damien - 30 May 2008 11:49 GMT
> > You could make a wrapper class and create a property.
>
[quoted text clipped - 4 lines]
> 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
Teemu Keiski - 29 May 2008 20:18 GMT
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/archive/2006/04/23/16785.aspx

Signature

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

> Is there a way to refer to things in Session object without calling
> Session itself?

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.