2009-11-02 15 views
8

क्या कोई वैकल्पिक तरीका है जो सभी मानकों को अंतर्निहित करता है? या कोई अन्य लाभ।बेनामी प्रोफ़ाइल माइग्रेट करने का सबसे अच्छा तरीका

MSDN से

:

public void Profile_OnMigrateAnonymous(object sender, ProfileMigrateEventArgs args) 
{ 
    ProfileCommon anonymousProfile = Profile.GetProfile(args.AnonymousID); 

    Profile.ZipCode = anonymousProfile.ZipCode; 
    Profile.CityAndState = anonymousProfile.CityAndState; 
    Profile.StockSymbols = anonymousProfile.StockSymbols; 

    //////// 
    // Delete the anonymous profile. If the anonymous ID is not 
    // needed in the rest of the site, remove the anonymous cookie. 

    ProfileManager.DeleteProfile(args.AnonymousID); 
    AnonymousIdentificationModule.ClearAnonymousIdentifier(); 

    // Delete the user row that was created for the anonymous user. 
    Membership.DeleteUser(args.AnonymousID, true); 

} 

या यह सबसे अच्छा/एक ही रास्ता है?

उत्तर

8

यह जाने का रास्ता है। लेकिन मैं एक सामान्यीकरण का सुझाव दूंगा। प्रत्येक प्रॉपर्टी को हार्डकोड करने के बजाय आप ProfileBase.Properties संग्रह के माध्यम से लूप कर सकते हैं। इन पंक्तियों के साथ कुछ:

var anonymousProfile = Profile.GetProfile(args.AnonymousID); 
foreach(var property in anonymousProfile.PropertyValues) 
{ 
    Profile.SetPropertyValue(property.Name, property.PropertyValue); 
} 

के बाद से संपत्ति समूहों संपत्ति के नाम के हिस्से के रूप में प्रतिनिधित्व कर रहे हैं (उदाहरण के लिए "Settings.Theme" सेटिंग समूह के भीतर थीम संपत्ति का प्रतिनिधित्व करता है) के ऊपर कोड भी संपत्ति समूहों के साथ काम करना चाहिए।

+0

क्या यह गुणों के समूह भी लेगा? –

0

क्या मैं आपके प्रश्न को सही ढंग से समझता हूं?

प्रोफ़ाइल गुण प्रवास के लिए लॉग दौरान पर

http://msdn.microsoft.com/en-us/library/taab950e.aspx

+0

हां, लेकिन यह करने का यही एकमात्र तरीका है? क्या वहां है, चलिए माइग्रेट करने के लिए एक और अधिक स्पष्ट तरीका कहें? –