PDA

View Full Version : نوشتن dll و استفاده از آن



robat7
شنبه 05 دی 1388, 08:34 صبح
با سلام راستش من تازه برنامه نویسی در C#‎ را شروع کرده ام
من یک برنامه برای پیدا کردن نام ستون فایل Excel نوشته ام. بدین ترتیب که برنامه یک عدد int را دریافت می نماید و نام ستون مربوطه را برمی گرداند.

چون از این برنامه در سایر برنامه هایم استفاده می نمایم می خواهم آن را بصورت dll درآورم و از آن در همه برنامه ها استفاده کنم

برنامه را بصورت dll تهیه کرده ام
با استفاده از Gacutil آن را ثبت کرده ام
dll را در رجیستری معرفی نموده ام (C:\Developer Assemlies) و dll را در مسیر فوق کپی نموده ام
dll را در قسمت Add Reference\.Net انتخاب نموده ام
حال وقتی از منوی View\Oject Browserبرنامه dll مورد نظر را انتخاب می نمایم هیچ چیزی نمی بینم
نحوه نوشتن dll اشتباه است؟
کلاس را اشتباه نوشته ام؟
لطفا راهنمایی بفرمایید. قبلا از وقتی که برای پاسخ دادن صرف می نمایید سپاسگزارم
کد برنامه به پیوست می باشد

mehdi.mousavi
پنج شنبه 10 دی 1388, 11:07 صبح
حال وقتی از منوی View\Oject Browserبرنامه dll مورد نظر را انتخاب می نمایم هیچ چیزی نمی بینم نحوه نوشتن dll اشتباه است؟ کلاس را اشتباه نوشته ام؟

سلام.
من Source رو دیدم:


اینطور کد نوشتن مطلقا صحیح نیست.همینطور اعداد رو در Source آوردید و معلوم نیست چی به چیه... 26، 702، 703، 16384 و ... شاید من نوعی متوجه بشم منظورتون چی بوده، اما در کل یادتون باشه شما کد رو برای خودتون نمی نویسید! شما همیشه باید فکر کنید که کد رو برای دیگران می نویسید.
مطلقا نیازی به اینجور کارها نیست. برای خوندن فایلهای Excel روشهای بسیار بهتر و هوشمندانه تری نیز وجود داره. برای مثال، شما میتونید از Jet Driver (http://www.connectionstrings.com/excel) ها بمنظور خوندن فایلهای XLS استفاده کنید.
اما برگردیم به جواب سوال شما... احتمالا به این دلیل شما نمیتونید کلاس مزبور رو از بیرون ببینید که هیچ Access Modifier ای برای کلاستون تعیین نکرده اید و این یعنی اینکه Access Modifier کلاس شما Internal در نظر گرفته میشه. بنابراین از بیرون کسی به DLL شما دسترسی نخواهد داشت. برای حل این مشکل، میتونید public رو جلوی نام کلاستون قرار بدید:public class ExcelColumnFinder

موفق باشید.