Hello,
I want to create a global class. To do this I did the followings:
1- Create a class name test. It has a public variable named mystring.
public class test
{
public string mystring = "hello world";
}
2- Create a global.asax and its coresponding global.asax.cs ( i did it using
VC2005)
3 - in global class generated by VC2005, I introduced test class as follow:
public class Global : System.Web.HttpApplication
{
public test myclass;
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
now I want to use it in an event in a mater page.
I did this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Application.myclass.mystring);
}
}
but I am getting this error:
Error 1 'System.Web.HttpApplicationState' does not contain a definition for
'myclass'
I do this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Global.myclass.mystring);
}
}
Error 1 An object reference is required for the nonstatic field, method, or
property 'Global.myclass'
What is wrong wioth my code?
Regards 10 3362
You need to declare the string as
public static string mystring = "Hello World";
I would recommend making it a property
public static mystring {
get { return "Hello World"; }
}
john
nice clean examples at www.nicecleanexamples.com
"ma" <ma@nowhere.comwrote in message
news:uz**************@TK2MSFTNGP06.phx.gbl...
Hello,
I want to create a global class. To do this I did the followings:
1- Create a class name test. It has a public variable named mystring.
public class test
{
public string mystring = "hello world";
}
2- Create a global.asax and its coresponding global.asax.cs ( i did it
using VC2005)
3 - in global class generated by VC2005, I introduced test class as
follow:
public class Global : System.Web.HttpApplication
{
public test myclass;
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
now I want to use it in an event in a mater page.
I did this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Application.myclass.mystring);
}
}
but I am getting this error:
Error 1 'System.Web.HttpApplicationState' does not contain a definition
for 'myclass'
I do this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Global.myclass.mystring);
}
}
Error 1 An object reference is required for the nonstatic field, method,
or property 'Global.myclass'
What is wrong wioth my code?
Regards
Thanks, but I don 't want that my variable be static. It is an example but
in realworld I want a variable which is not static. What should I do?
Regards
"John Mott" <jo********@hotmail.comwrote in message
news:el**************@TK2MSFTNGP03.phx.gbl...
You need to declare the string as
public static string mystring = "Hello World";
I would recommend making it a property
public static mystring {
get { return "Hello World"; }
}
john
nice clean examples at www.nicecleanexamples.com
"ma" <ma@nowhere.comwrote in message
news:uz**************@TK2MSFTNGP06.phx.gbl...
>Hello, I want to create a global class. To do this I did the followings:
1- Create a class name test. It has a public variable named mystring. public class test
{
public string mystring = "hello world";
}
2- Create a global.asax and its coresponding global.asax.cs ( i did it using VC2005) 3 - in global class generated by VC2005, I introduced test class as follow:
public class Global : System.Web.HttpApplication
{
public test myclass;
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
} now I want to use it in an event in a mater page. I did this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Application.myclass.mystring);
}
}
but I am getting this error:
Error 1 'System.Web.HttpApplicationState' does not contain a definition for 'myclass'
I do this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Global.myclass.mystring);
}
}
Error 1 An object reference is required for the nonstatic field, method, or property 'Global.myclass' What is wrong wioth my code? Regards
If you're trying to create global variables you sorta do want them static.
You can have something thats modifiable, not just a constant.
static string _mystring = "";
public static string mystring {
get { return _mystring; }
set { _mystring = value;}
}
The other option is to create an instance of the global class
public class Global {
public string mystring = "a default value";
};
public Global GlobalInstance = new Global();
and then you can say
GlobalInstance.mystring = "a new value";
John
nice clean examples at www.nicecleanexamples.com
"ma" <ma@nowhere.comwrote in message
news:OF**************@TK2MSFTNGP04.phx.gbl...
Thanks, but I don 't want that my variable be static. It is an example but
in realworld I want a variable which is not static. What should I do?
Regards
"John Mott" <jo********@hotmail.comwrote in message
news:el**************@TK2MSFTNGP03.phx.gbl...
>You need to declare the string as
public static string mystring = "Hello World";
I would recommend making it a property
public static mystring { get { return "Hello World"; } }
john nice clean examples at www.nicecleanexamples.com
"ma" <ma@nowhere.comwrote in message news:uz**************@TK2MSFTNGP06.phx.gbl...
>>Hello, I want to create a global class. To do this I did the followings:
1- Create a class name test. It has a public variable named mystring. public class test
{
public string mystring = "hello world";
}
2- Create a global.asax and its coresponding global.asax.cs ( i did it using VC2005) 3 - in global class generated by VC2005, I introduced test class as follow:
public class Global : System.Web.HttpApplication
{
public test myclass;
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
} now I want to use it in an event in a mater page. I did this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Application.myclass.mystring);
}
}
but I am getting this error:
Error 1 'System.Web.HttpApplicationState' does not contain a definition for 'myclass'
I do this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Global.myclass.mystring);
}
}
Error 1 An object reference is required for the nonstatic field, method, or property 'Global.myclass' What is wrong wioth my code? Regards
Thanks John, But it doesn't work!
I did this in the page load event:
protected void Page_Load(object sender, EventArgs e)
{
Global GlobalInstance=new Global();
Response.Write(GlobalInstance.myclass.mystring);
GlobalInstance.myclass.mystring = "new string";
}
so the first time that I load this page, it should show "Hello World" and
the next time that I download the page ( or refresh it) it should show "new
string" but it always show "hello world"
Any suggestion?
Regards
"John Mott" <jo********@hotmail.comwrote in message
news:%2****************@TK2MSFTNGP06.phx.gbl...
If you're trying to create global variables you sorta do want them static.
You can have something thats modifiable, not just a constant.
static string _mystring = "";
public static string mystring {
get { return _mystring; }
set { _mystring = value;}
}
The other option is to create an instance of the global class
public class Global {
public string mystring = "a default value";
};
public Global GlobalInstance = new Global();
and then you can say
GlobalInstance.mystring = "a new value";
John
nice clean examples at www.nicecleanexamples.com
"ma" <ma@nowhere.comwrote in message
news:OF**************@TK2MSFTNGP04.phx.gbl...
>Thanks, but I don 't want that my variable be static. It is an example but in realworld I want a variable which is not static. What should I do?
Regards
"John Mott" <jo********@hotmail.comwrote in message news:el**************@TK2MSFTNGP03.phx.gbl...
>>You need to declare the string as
public static string mystring = "Hello World";
I would recommend making it a property
public static mystring { get { return "Hello World"; } }
john nice clean examples at www.nicecleanexamples.com
"ma" <ma@nowhere.comwrote in message news:uz**************@TK2MSFTNGP06.phx.gbl... Hello, I want to create a global class. To do this I did the followings:
1- Create a class name test. It has a public variable named mystring. public class test
{
public string mystring = "hello world";
}
2- Create a global.asax and its coresponding global.asax.cs ( i did it using VC2005) 3 - in global class generated by VC2005, I introduced test class as follow:
public class Global : System.Web.HttpApplication
{
public test myclass;
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
} now I want to use it in an event in a mater page. I did this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Application.myclass.mystring);
}
}
but I am getting this error:
Error 1 'System.Web.HttpApplicationState' does not contain a definition for 'myclass'
I do this:
public partial class Site1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Global.myclass.mystring);
}
}
Error 1 An object reference is required for the nonstatic field, method, or property 'Global.myclass' What is wrong wioth my code? Regards
"ma" <ma@nowhere.comwrote in message
news:Oo**************@TK2MSFTNGP06.phx.gbl...
Thanks John, But it doesn't work!
I did this in the page load event:
protected void Page_Load(object sender, EventArgs e)
{
Global GlobalInstance=new Global();
Response.Write(GlobalInstance.myclass.mystring);
GlobalInstance.myclass.mystring = "new string";
}
so the first time that I load this page, it should show "Hello World" and
the next time that I download the page ( or refresh it) it should show
"new string" but it always show "hello world"
Any suggestion?
Regards
Make the Global class itself static, like this
public static class Global {
public static string myString = "default";
}
Then you should be able to just refer to it without creating it with
Global.myString = "set me";
john
nice clean examples at www.nicecleanexamples.com
Thanks.
Is there any other way to instantiate an object with application scope?
Regards
"John Mott" <jo********@hotmail.comwrote in message
news:Ok**************@TK2MSFTNGP03.phx.gbl...
>
"ma" <ma@nowhere.comwrote in message
news:Oo**************@TK2MSFTNGP06.phx.gbl...
>Thanks John, But it doesn't work!
I did this in the page load event:
protected void Page_Load(object sender, EventArgs e)
{
Global GlobalInstance=new Global();
Response.Write(GlobalInstance.myclass.mystring) ;
GlobalInstance.myclass.mystring = "new string";
} so the first time that I load this page, it should show "Hello World" and the next time that I download the page ( or refresh it) it should show "new string" but it always show "hello world"
Any suggestion?
Regards
Make the Global class itself static, like this
public static class Global {
public static string myString = "default";
}
Then you should be able to just refer to it without creating it with
Global.myString = "set me";
john
nice clean examples at www.nicecleanexamples.com
You can create a static member of the Application class (a static member can
be an object that can be modified, it doesn't have to be read-only). That
was my first idea but you didn't want a static variable. You may have
thought from that context that static meant 'readonly', it doesn't.
Does that help?
here's a link as well: http://support.microsoft.com/default...;en-us;Q312607
john
"ma" <ma@nowhere.comwrote in message
news:%2****************@TK2MSFTNGP04.phx.gbl...
Thanks.
Is there any other way to instantiate an object with application scope?
Regards
"John Mott" <jo********@hotmail.comwrote in message
news:Ok**************@TK2MSFTNGP03.phx.gbl...
>> "ma" <ma@nowhere.comwrote in message news:Oo**************@TK2MSFTNGP06.phx.gbl...
>>Thanks John, But it doesn't work!
I did this in the page load event:
protected void Page_Load(object sender, EventArgs e)
{
Global GlobalInstance=new Global();
Response.Write(GlobalInstance.myclass.mystring );
GlobalInstance.myclass.mystring = "new string";
} so the first time that I load this page, it should show "Hello World" and the next time that I download the page ( or refresh it) it should show "new string" but it always show "hello world"
Any suggestion?
Regards Make the Global class itself static, like this
public static class Global { public static string myString = "default"; }
Then you should be able to just refer to it without creating it with
Global.myString = "set me";
john
nice clean examples at www.nicecleanexamples.com
Hi there,
Usually, when the class cannot be static and you require one global instance
of a class, singleton pattern should be used (this is thread safe variant):
public class Global
{
private Global()
{
}
private static object sync = new object();
private static Global instance = null;
public Global Instance
{
get
{
lock(sync)
{
if (instance == null)
{
instance = new Global();
}
}
return instance;
}
}
}
// usage
Global global = Global.Instance;
In addition, in ASP.NET there's build-in mechanism for such scenarios called
Application state (instance can be initialized in the Global.asax
Application_Start event) or Caching (you'd have to make sure race condition
is eliminated).
HTH
--
Milosz
"ma" wrote:
Thanks.
Is there any other way to instantiate an object with application scope?
Regards
"John Mott" <jo********@hotmail.comwrote in message
news:Ok**************@TK2MSFTNGP03.phx.gbl...
"ma" <ma@nowhere.comwrote in message
news:Oo**************@TK2MSFTNGP06.phx.gbl...
Thanks John, But it doesn't work!
I did this in the page load event:
protected void Page_Load(object sender, EventArgs e)
{
Global GlobalInstance=new Global();
Response.Write(GlobalInstance.myclass.mystring);
GlobalInstance.myclass.mystring = "new string";
}
so the first time that I load this page, it should show "Hello World" and
the next time that I download the page ( or refresh it) it should show
"new string" but it always show "hello world"
Any suggestion?
Regards
Make the Global class itself static, like this
public static class Global {
public static string myString = "default";
}
Then you should be able to just refer to it without creating it with
Global.myString = "set me";
john
nice clean examples at www.nicecleanexamples.com
Thanks,
Where can I read more about application instance or caching? Any good
tutorial on the web?
Regards
"Milosz Skalecki [MCAD]" <mi*****@DONTLIKESPAMwp.plwrote in message
news:00**********************************@microsof t.com...
Hi there,
Usually, when the class cannot be static and you require one global
instance
of a class, singleton pattern should be used (this is thread safe
variant):
public class Global
{
private Global()
{
}
private static object sync = new object();
private static Global instance = null;
public Global Instance
{
get
{
lock(sync)
{
if (instance == null)
{
instance = new Global();
}
}
return instance;
}
}
}
// usage
Global global = Global.Instance;
In addition, in ASP.NET there's build-in mechanism for such scenarios
called
Application state (instance can be initialized in the Global.asax
Application_Start event) or Caching (you'd have to make sure race
condition
is eliminated).
HTH
--
Milosz
"ma" wrote:
>Thanks. Is there any other way to instantiate an object with application scope? Regards "John Mott" <jo********@hotmail.comwrote in message news:Ok**************@TK2MSFTNGP03.phx.gbl...
>
"ma" <ma@nowhere.comwrote in message
news:Oo**************@TK2MSFTNGP06.phx.gbl... Thanks John, But it doesn't work!
I did this in the page load event:
protected void Page_Load(object sender, EventArgs e)
{
Global GlobalInstance=new Global();
Response.Write(GlobalInstance.myclass.mystring) ;
GlobalInstance.myclass.mystring = "new string";
} so the first time that I load this page, it should show "Hello World" and the next time that I download the page ( or refresh it) it should show "new string" but it always show "hello world"
Any suggestion?
Regards
Make the Global class itself static, like this
public static class Global {
public static string myString = "default";
}
Then you should be able to just refer to it without creating it with
Global.myString = "set me";
john
nice clean examples at www.nicecleanexamples.com
Hi,
There are many tutorials out there, ie: http://samples.gotdotnet.com/quickst...eoverview.aspx
Google is your friend
Regards
--
Milosz
"ma" wrote:
Thanks,
Where can I read more about application instance or caching? Any good
tutorial on the web?
Regards
"Milosz Skalecki [MCAD]" <mi*****@DONTLIKESPAMwp.plwrote in message
news:00**********************************@microsof t.com...
Hi there,
Usually, when the class cannot be static and you require one global
instance
of a class, singleton pattern should be used (this is thread safe
variant):
public class Global
{
private Global()
{
}
private static object sync = new object();
private static Global instance = null;
public Global Instance
{
get
{
lock(sync)
{
if (instance == null)
{
instance = new Global();
}
}
return instance;
}
}
}
// usage
Global global = Global.Instance;
In addition, in ASP.NET there's build-in mechanism for such scenarios
called
Application state (instance can be initialized in the Global.asax
Application_Start event) or Caching (you'd have to make sure race
condition
is eliminated).
HTH
--
Milosz
"ma" wrote:
Thanks.
Is there any other way to instantiate an object with application scope?
Regards
"John Mott" <jo********@hotmail.comwrote in message
news:Ok**************@TK2MSFTNGP03.phx.gbl...
"ma" <ma@nowhere.comwrote in message
news:Oo**************@TK2MSFTNGP06.phx.gbl...
Thanks John, But it doesn't work!
I did this in the page load event:
protected void Page_Load(object sender, EventArgs e)
{
Global GlobalInstance=new Global();
Response.Write(GlobalInstance.myclass.mystring);
GlobalInstance.myclass.mystring = "new string";
}
so the first time that I load this page, it should show "Hello World"
and
the next time that I download the page ( or refresh it) it should show
"new string" but it always show "hello world"
Any suggestion?
Regards
Make the Global class itself static, like this
public static class Global {
public static string myString = "default";
}
Then you should be able to just refer to it without creating it with
Global.myString = "set me";
john
nice clean examples at www.nicecleanexamples.com
This discussion thread is closed Replies have been disabled for this discussion. Similar topics
3 posts
views
Thread by Peter |
last post: by
|
1 post
views
Thread by Chris |
last post: by
|
2 posts
views
Thread by Ricardo Corsi |
last post: by
|
1 post
views
Thread by Ron |
last post: by
|
2 posts
views
Thread by Adrian |
last post: by
|
3 posts
views
Thread by Adrian |
last post: by
|
1 post
views
Thread by paulo |
last post: by
|
8 posts
views
Thread by Dom |
last post: by
|
15 posts
views
Thread by =?Utf-8?B?UGF0Qg==?= |
last post: by
| | | | | | | | | | |