Inkonsistenter Zugriff

exiter28

Erfahrenes Mitglied
Hi,

ich hätte mal wieder ein kleines Rätsel. Folgende Meldung bekomme ich, wenn ich den folgenden Code in eine public Classe setze:

fehlermeldung:
Fehler 1 Inkonsistenter Zugriff: Rückgabetyp "System.Collections.Generic.List<Key_Manager.DataStreamInfo>" ist weniger zugreifbar als Methode "Key_Manager.ShowADS.GetFileStreams(string)" C:\Users\Scharl\Documents\Visual Studio 2010\Projects\Project DLL\ShowADS\ShowADS\ShowADS.cs 52 37 ShowADS


Code:
public Class ADS
{
        public List<DataStreamInfo> GetFileStreams(string fileName)
        {
            List<DataStreamInfo> streams = new List<DataStreamInfo>();
            FileStream fileStream = new FileStream(fileName, FileMode.Open);

            try
            {
                WIN32_STREAM_ID streamId = new WIN32_STREAM_ID();
                int streamHeaderSize = Marshal.SizeOf(streamId);
                int context = 0;
                bool hasMore = true;

                while (hasMore)
                {
                    int bytesRead = 0;
                    hasMore = BackupRead(fileStream.SafeFileHandle, ref streamId, streamHeaderSize, ref bytesRead, false, false, ref context);

                    if (hasMore && bytesRead == streamHeaderSize)
                    {
                        if (streamId.streamNameSize > 0)
                        {
                            bytesRead = 0;
                            IntPtr pName = Marshal.AllocHGlobal(streamId.streamNameSize);
                            try
                            {
                                BackupRead(fileStream.SafeFileHandle, pName, streamId.streamNameSize, ref bytesRead, false, false, ref context);
                                char[] bName = new char[streamId.streamNameSize];
                                Marshal.Copy(pName, bName, 0, streamId.streamNameSize);

                                string sName = new string(bName);
                                int index = sName.IndexOf(':', 1);
                                if (index > -1) sName = sName.Substring(1, index - 1);

                                DataStreamInfo streamInfo = new DataStreamInfo();
                                streamInfo.StreamName = sName;
                                streamInfo.StreamSize = streamId.size.QuadPart();
                                switch (streamId.streamId)
                                {
                                    case (int)StreamType.BACKUP_ALTERNATE_DATA:
                                        streamInfo.StreamType = "Alternative Data Stream";
                                        break;

                                    case (int)StreamType.BACKUP_DATA:
                                        streamInfo.StreamType = "Standard Data";
                                        break;

                                    case (int)StreamType.BACKUP_EA_DATA:
                                        streamInfo.StreamType = "Extended attribute Data";
                                        break;

                                    case (int)StreamType.BACKUP_LINK:
                                        streamInfo.StreamType = "Hard link information";
                                        break;

                                    case (int)StreamType.BACKUP_OBJECT_ID:
                                        streamInfo.StreamType = "Object identifiers";
                                        break;

                                    case (int)StreamType.BACKUP_PROPERTY_DATA:
                                        streamInfo.StreamType = "Property data";
                                        break;

                                    case (int)StreamType.BACKUP_REPARSE_DATA:
                                        streamInfo.StreamType = "Reparse points";
                                        break;

                                    case (int)StreamType.BACKUP_SECURITY_DATA:
                                        streamInfo.StreamType = "Security descriptor data";
                                        break;

                                    case (int)StreamType.BACKUP_SPARSE_BLOCK:
                                        streamInfo.StreamType = "Sparse file";
                                        break;
                                }

                                streams.Add(streamInfo);
                            }
                            finally
                            {
                                Marshal.FreeHGlobal(pName);

                            }
                        }

                        int low = 0;
                        int high = 0;
                        BackupSeek(fileStream.SafeFileHandle, streamId.size.Low, streamId.size.High, ref low, ref high, ref context);
                    }
                    else
                    {
                        break;
                    }
                }
            }
            catch
            {
                return null;
            }
            finally
            {
                fileStream.Close();
            }

            return streams;
        }
    }
}

Kann mir einer von Euch erklären, was hier nicht passt?

Danke!
 
Hi

Du publizierst eine Klasse nach aus, die jedoch nicht als Public markiert ist!
Und zwar:Key_Manager.DataStreamInfo
Steht aber auch in der Fehlermeldung ;)
 
Du musst entweder die Klasse Key_Manager.DataStreamInfo als Public deklarieren oder die Methode GetFileStreams als Private deklarieren.
 
Zurück