|
Hello,
I have a problem with using Microsoft Application Blocks Configuration manager with Visual Studion 2008, .NET framework 2.0 on a Vista machine.
I am using unencryped XML as the data store and provider. In my C# code I call ConfigurationManager.Write("MyConfig", myObject) after the user changes a value of myObject.
The MyApplication.vshost.exe.config file in my MyProject\Bin\Debug folder updates on the write. Its timestamp updates and if I open the file in a text editor its content changes the way it should.
The problem:
When the user closes the application the MyApplication.vshost.exe.config file's timestamp reverts to its original value and the contents of the file also revert to original.
I have researched this problem a good deal with no luck. I have found the same behavior in the sample code for MSAB that was installed on my machine from the Microsoft download. That is in the provided QuickStarts.Write project I can save a change to the XML configuration file and Write.vshost.exe.config updates until I close the application. The configuration file reverts to the original timestamp and content when the application closes.
Arrrrrgghhhhhh!
Thanks in advance for any insight into this headbanger.
|
|
|
|
|
Would it be possible that, after making changes to the application config file, you forget to call:
Configuration.Save() to save the changes ConfigurationManager.RefreshSection() to force reloading the changed section ?
SkyWalker
|
|
|
|
|
I don't think that is the problem. With the ConfigurationManager class that I'm using, RefreshSection() is not defined.
Best,
Bill
|
|
|
|
|
If you're using VS 2008, then you might want to see this comment[^] made by the Visual Studio Product Team
SkyWalker
|
|
|
|
|
Hello friends,
Now a days, i am getting some work like using existing vb, vc++, ATL, MFC etc.
code. I have task to to invoke or reuse the code in the C#.Net application.
I am able to invoke com component code in C#. But i am facing problem when i try
to invoke the win32 C++ code in C#.net. So can any one give me helpful sites, book list
for all types of interoperability which can be done with C#. That is under one umbrella.
It will help be to trace out or reach at decision can we do the interoperability.
Thanks in Advance.
|
|
|
|
|
|
Thanks for your fast reply.
But, as per my knowledge i thing the site give information for only p invoke i.e.
DllImport like that attribute not other things. Can you provide some more sites which will cover other
things which are not covered here.
Any ways thanks for your help.
|
|
|
|
|
|
how i can use wpf with vs2005
123
|
|
|
|
|
|
Apart from what DaveyM69 says you ideally need Expression Blend as well. We have a WPF product at work and the guy doing it says his productivity is about 10 times greater using Expression Blend + VS 2005.
Kevin
|
|
|
|
|
how can i count same values considering i don't know what values are in the array?
|
|
|
|
|
Use a generic Dictionary<int, int=""> to store the frequency count of each unique value in the array.
Loop through the values in the array. For each value, increment the frequency count for that value in your Dictionary by 1. After you have passed through the array, your Dictionary should contain a number of items whose keys represent the unique values in your array. The value associated with each key will represent the frequency count for that value.
Paul Marfleet
"No, his mind is not for rent
To any God or government"
Tom Sawyer - Rush
|
|
|
|
|
Hi, sorry but how do you use Dictionary please?
I can get unique values with the following code but i am stuck with the count.
List<int> myList = new List<int>();<br />
<br />
int index;<br />
<br />
for (int i = 0; i < myArray.Length; i++)<br />
{<br />
index = myList.BinarySearch(myArray[i]);<br />
if (index < 0)<br />
{<br />
myList.Insert(~index, myArray[i]);<br />
}<br />
}<br />
int[] arr = myList.ToArray();<br />
foreach (Int32 tmp in arr)<br />
{<br />
Console.WriteLine("id: {0}", tmp);<br />
}</int></int>
|
|
|
|
|
i dont have any ide here, so i can only provide some untested half-pseudo-code.
it might help you to get on the way..
map will contain your arrayObjects as key and the count as value.
Hashmap<object, int> map = new Hashmap<object, int>();
for (int i=0; i<myArray.Length; i++)
{
object value = myArray[i];
if (map.Keys.Contains(value))
{
map[value] = map[value] + 1;
}
else
{
map.Add(value, 1);
}
}
|
|
|
|
|
Isn't Hashmap a Java type? I don't think it's available in the .NET framework.
In this case, the OP should use the generic Dictionary type, with both the key and value of type int .
Paul Marfleet
"No, his mind is not for rent
To any God or government"
Tom Sawyer - Rush
|
|
|
|
|
oops, youre right. i always run into this problem. guess LinkedList would fit here, too.
|
|
|
|
|
Did you try reading the documentation[^]?
Paul Marfleet
"No, his mind is not for rent
To any God or government"
Tom Sawyer - Rush
|
|
|
|
|
thanks got it working.
Dictionary<int, int=""> dic = new Dictionary<int, int="">();<br />
<br />
for (int i = 0; i < myArray.Length; i++)<br />
{<br />
int value = myArray[i];<br />
if (dic.ContainsKey(value))<br />
{<br />
dic[value] += 1;<br />
}<br />
else<br />
{<br />
dic.Add(value, 1);<br />
}<br />
}<br />
<br />
int[] keys = new int[dic.Count]; <br />
int[] values = new int[dic.Count]; <br />
dic.Keys.CopyTo(keys, 0);<br />
dic.Values.CopyTo(values, 0);<br />
<br />
for (int i = 0; i < keys.Length; i++){<br />
Console.WriteLine("{0} \t : {1}", keys[i], values[i]);<br />
}</int,></int,>
|
|
|
|
|
Hi,
the easiest approach I know is a two-step algorithm:
1. sort the array or whatever collection you have; .NET knows how to do that.
2. iterate over the collection, and count how often an item is identical to the previous one.
BTW: if you are not allowed to modify (i.e. sort) the original collection, you will need
a helper collection, such as a HashTable/Dictionary, as others already explained.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Hi All,
I'm trying to get this working, I can't see any problems with the code but its just not working. Can anyone see what I'm doing wrong?
I have this in a class:
public static class Enums
{
public enum ApplicationView
{
BrowserView = 0,
DataBaseView = 1,
ConfigurationView = 2
}
}
With this in my usercontrol:
public sealed class ApplicationViewEventArgs : EventArgs
{
private Enums.ApplicationView _applicationView;
public Enums.ApplicationView ApplicationViewStatus
{
get
{
return _applicationView;
}
set
{
_applicationView = value;
}
}
public ApplicationViewEventArgs(Enums.ApplicationView ApplicationViewStatus) : base()
{
_applicationView = ApplicationViewStatus;
}
}
public partial class Navigator : UserControl
{
public delegate void ApplicationViewChanged(object sender, ApplicationViewEventArgs e);
public event ApplicationViewChanged ApplicationViewStatusChanged;
public Navigator()
{
this.InitializeComponent();
}
private void btnBrowseView_Click(object sender, RoutedEventArgs e)
{
if (ApplicationViewStatusChanged != null)
ApplicationViewStatusChanged(this, new ApplicationViewEventArgs(Enums.ApplicationView.BrowserView));
}
private void btnDatabaseView_Click(object sender, RoutedEventArgs e)
{
if (ApplicationViewStatusChanged != null)
ApplicationViewStatusChanged(this, new ApplicationViewEventArgs(Enums.ApplicationView.DataBaseView));
}
}
And this in my main window code:
private void Navigator_ApplicationViewStatusChanged(object o, ApplicationViewEventArgs e)
{
lyrBrowserView.Visibility = Visibility.Hidden;
lyrDatabaseView.Visibility = Visibility.Hidden;
switch (e.ApplicationViewStatus)
{
case Enums.ApplicationView.BrowserView:
lyrBrowserView.Visibility = Visibility.Visible;
break;
case Enums.ApplicationView.DataBaseView:
lyrDatabaseView.Visibility = Visibility.Visible;
break;
}
}
When a button is clicked nothing is happening. The click event executes but it never seems to execute the ApplicationViewEventArgs meaning ApplicationViewStatusChanged is always null ...
Cheers,
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
Hi,
Jammer wrote: public event ApplicationViewChanged ApplicationViewStatusChanged;
You want this ApplicationViewStatusChanged to be different from null? where is the line of code
that assigns a value to it?
Hint: you need the += operator
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Ahhhh ... ok, off to look into!
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|
|
This confused me when I first started writing events! If an event has not been subscribed to, it will be null. Simply subscribe to the event, as Luc said, and then it'll be raised.
Dave
|
|
|
|
|
Yeah, i'm seriously confused at the moment ... i'm getting all sorts of errors now.
I've moved this:
Navigator.ApplicationViewStatusChanged += new ApplicationViewEventArgs.ApplicationViewChanged(Navigator_ApplicationViewStatusChanged);
into my main window code behind, now its saying:
An object reference is required for the non-static field, method, or property 'SampleSort.Presentation.Navigator.ApplicationViewStatusChanged'
and:
The type name 'ApplicationViewChanged' does not exist in the type 'SampleSort.Presentation.ApplicationViewEventArgs'
Jammer
Going where everyone here has gone before!
My Blog
|
|
|
|