C#’ta “Koruma Düzeyi Nedeniyle xxx Erişilebilir Değil. Yalnızca Ortak Türler İşlenebilir” Hatası ve Çözümü

Merhaba,

C#’ta kodlama yaparken ansızın aşağıdaki gibi bir hatayla karşılaşabilirsiniz.

Koruma Düzeyi Nedeniyle xxx Erişilebilir Değil. Yalnızca Ortak Türler İşlenebilir.

Bu olası hatanın temel sebebi algoritmada kullandığınız yapıların erişim belirleyicileriyle alakalıdır.

Örneğin, XmlSerializer sınıfıyla çalışırken bu olası hatayı şu şekilde alabiliriz;

    class Program
    {
        static void Main(string[] args)
        {
            OrnekSinif ornek = new OrnekSinif();
            ornek.OrnekProperty = 3;

            var xml = new XmlSerializer(typeof(OrnekSinif));
            using (StreamWriter sw = new StreamWriter(@"D:\Ornek.xml"))
            {
                xml.Serialize(sw, ornek);
            }

            Console.Read();
        }
    }

    class OrnekSinif
    {
        public int OrnekProperty { get; set; }
    }

Yukarıdaki örnek kod bloğunda gördüğünüz gibi “OrnekSinif” isminde bir sınıfımız mevcut. XmlSerializer sınıfı ile ilgili sınıfın xml modelini çıkartmaktayız. Tabi bu işlemleri yaparken 8. satırdaki “typeof(OrnekSinif)” komutu ile “OrnekSinif” isimli sınıfı kullanacağımızı belirtiyoruz. “OrnekSinif” isimli sınıfın ise erişim belirleyicisi private olduğuna dikkatinizi çekerim. Projemizi bu şekilde derleyip çalıştırdığımızda ilgili olası hatayla aşağıdaki gibi karşı karşıya kalmaktayız.

C#'ta Koruma Düzeyi Nedeniyle xxx Erişilebilir Değil. Yalnızca Ortak Türler İşlenebilir Hatası ve Çözümü

İşte bu ve benzer misallerde alınan ilgili hatanın çözümü, ilgili yapıların erişim belirleyicisini public yapmaktan geçer. public dışında protected yahut internal olarak da şansınızı deneyebilirsiniz.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar dilerim…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. Ahmet dedi ki:

    Deneyipte çalışmayan arkadaşlar programıda public yapsınlar.Bende de aynı problem varken bütün sınıflarım public olmasına rağmen aynı hata devam ediyordu. “class Program” kısmını public yaparak çalıştırdım.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.