Reputation: 133
I Have this error: 'CLGDMFeed.Dal.DataManager' is inaccessible due to protection level. And I have no Idea why i get this.
Tis is my class.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CLGDMFeed.Bol;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace CLGDMFeed.Dal
{
public static class DataManager
{
#region Methods
public static void SerializeFeed(string sFileName, Feed feed)
{
try
{
using (Stream stream = File.Open(sFileName, FileMode.Create))
{
BinaryFormatter binform = new BinaryFormatter();
binform.Serialize(stream, feed);
stream.Close();
}
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}
public static Feed DeSerializeFeed(string sFileName)
{
Feed feed;
try
{
using (Stream stream = File.Open(sFileName, FileMode.Open))
{
BinaryFormatter binform = new BinaryFormatter();
feed = (Feed)binform.Deserialize(stream);
stream.Close();
}
return feed;
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}
public static void SerializeIListFeed(string sFileName, IList<Feed> list)
{
try
{
using (Stream stream = File.Open(sFileName, FileMode.Create))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(stream, list);
stream.Close();
}
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}
public static IList<Feed> DeSerializeIListFeed(string sFileName)
{
IList<Feed> list;
try
{
using (Stream stream = File.Open(sFileName, FileMode.Open))
{
BinaryFormatter bf = new BinaryFormatter();
list = (IList<Feed>)bf.Deserialize(stream);
stream.Close();
}
return list;
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}
#endregion
}
}
This is my form
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CLGDMFeed.Dal;
using CLGDMFeed.Bol;
namespace ViewerGDMFeed
{
public partial class Viewer : Form
{
//Lijst van object Deserializeren van een bestand zodat je ermee kan werken
IList<Feed> ListFeeds = DataManager.DeSerializeIListFeed("C:\\Documents and Settings\\sam\\Bureaublad\\Listfeeds.lfds");
public Viewer()
{
InitializeComponent();
//De namen van de feeds toevoegen aan je combobox
foreach (Feed feed in ListFeeds)
{
comboBox.Items.Add(feed.STitle);
}
}
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
//Overlopen welke feed uit je lijst overeenkomt met de gekozen feed uit combox
foreach (Feed feed in ListFeeds)
{
if (comboBox.SelectedText == feed.STitle)
{
//De labels invullen met de juiste data
ViewerLabelTitle.Text = feed.STitle;
//...
}
}
}
}
}
Sorry for all the code
Does anyone kno how to solve tis problem? Thanks
I have rebuild the classliberary and the error is gone.
But I have a new error: Metadata file 'C:\Documents and Settings\sam\Bureaublad\Herexamen programmeren\WindowsFormsApplication1\CLGDMFeed\bin\Debug\CLGDMFeed.dll' could not be found
Upvotes: 1
Views: 9129
Reputation: 414
Make sure that the assembly with Dal namespace has been signed with a strong name key. Sometimes unsigned assemblies could cause issues like that.
Upvotes: 0
Reputation: 133
Found the problem! There was a method missing. GetObjectData. Stil don't get where the metadata file problem came from. thanx a lot for your answers. Greetings
Upvotes: 2
Reputation: 273621
The code looks OK, so you are probably not running the version of the file that you think you are. Check and Open from the Solution-Explorer.
Upvotes: 1